Kylin的依赖于Hive、Hbase、Hadoop的。所以配置起来相对是最复杂的。

遇到问题需要清楚Job生成的数据,这里官方文档写的没更新,用这个类执行。

hbase org.apache.hadoop.util.RunJar lib/kylin-job-2.2.0.jar org.apache.kylin.storage.hbase.util.StorageCleanupJob --delete false

/etc/profile 的内容,KYLIN环境需要的东西。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
export JAVA_HOME=/usr/local/product/jdk1.8.0_92
export ZOOKEEPER_HOME=/usr/local/product/zookeeper-3.4.11
export HBASE_HOME=/usr/local/product/hbase-1.2.6
export HBASE_CLASSPATH=$HBASE_HOME/conf
export HIVE_HOME=/usr/local/product/apache-hive-1.2.2-bin
export HADOOP_HOME=/usr/local/product/hadoop-2.9.0
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export KYLIN_HOME=/usr/local/product/apache-kylin-2.2.0-bin
export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin/:$HIVE_HOME/bin:$HIVE_HOME/conf:$HBASE_HOME/bin:$KYLIN_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:/usr/local/bin
export PATH=/usr/local/lib:$PATH

遇到的问题:

  • Failed to find metadata store by url: kylin_metadata@hbase。后来进入zookeeper,/hbase/table,发现kylin_metadata还在,删除掉后正常启动
  • 9000 端口和php-fpm冲突,将php-fpm的端口、nginx中代理的端口修改成另一个端口可解决。
  • 配置hive时,需要使用mysql驱动,这个要改下配置和上传mysql-connnector*.jar
  • 在建立cube的时候非常慢,要有耐心。
  • Hadoop 中需要的JAVA_HOME配置。
  • Hadoop 需要启动 history 与 WebAppProxyServer。
  • kylin误删hdfs上kylin_metadata下数据出现java.lang.IllegalStateException错误
  • 登陆的地址需要是,http://ip:7070/kylin,密码,Kylin默认账号为:ADMIN,默认密码:KYLIN(区分大小写,必须全都大写)
  • 如果cube在build中出现错误,需要在monitor中discard对应的cube才能重新build
  • 删除model前必须先drop掉里面的cube,而drop掉cube前如果cube是Ready状态需要先disable。
  • Kylin使用HBase来进行存储,而不是普通的文件系统。Kylin的配置文件kylin.properties中查看到:kylin.metadata.url=kylin_metadata@hbase。表示Kylin的元数据被保存在HBase的kylin_metadata表中。
  • Hive没有hdfs:/tmp目录的权限,赋权限即可hadoop dfs -chmod -R 777 /tmp.
    1
    (Permission denied: user=anonymous, access=EXECUTE, inode="/tmp":hadoop:supergroup:drwx------

The metadata store in hbase

kylin.metadata.url=kylin_metadata@hbase

表示Kylin的元数据被保存在HBase的kylin_metadata表中。

1
2
3
# Hadoop 需要启动 history
./mr-jobhistory-daemon.sh start historyserver
./yarn-daemon.sh --config $HADOOP_CONF_DIR start proxyserver

格式化Hadoop的NameNode

  • bin/hadoop namenode -format。因为中途弄错了一个东西,导致想重新安装kylin,折腾N多问题后,将所有的数据全部删除,忘记了格式化namenode导致namenode无法启动。

从Kylin元数据中清理掉无用的资源

随着时间的推移,有些资源,比如字典、表的快照等变得无用了(cube的segment被删除或合并了),但是他们仍然占用空间。可以执行如下命令查找和清理无用的元数据:

  • 首先,执行检查,这是安全的操作,不会修改任何内容:
1
2
3
4
# 将需要被删除的资源(resources)罗列出来
./bin/metastore.sh clean
```
- 在上面的命令中,添加`--delete true`参数,这样就会清理掉哪些无用的资源。切记,在这个命令操作之前,一定要备份Kylin元数据:

./bin/metastore.sh clean –delete true
```

参考文档