Kylin系列之一:Kylin的伪分布式安装
一.伪分布式安装kylin
2018年4月15日
15:06
安装需要的环境
1. hadoop集群环境:由于安装的是CDH5.14.0的版本,所以相关组件都是跟5.14.0相关
2. spark采用的是2.2.1版本,是根据hadoop2.6.0进行编译的
3. kylin采用的是2.3.1,根据cdh5.7进行编译的
安装过程
启动hadoop集群以及hiveserver2和metastore服务(否则kylin无法访问hive的元数据)
nohup hive --service hiveserver2 2>>~/log 1>>/dev/null &
nohup hive --service metastore >> ~/abc.log &
注意:此时hive-site.xml文件中必须有如下配置:
<property> <name>hive.metastore.uris</name> <value>thrift://huabingood:9083</value> <description>远程访问的metastore所在的地址于端口</description> </property> |
下载解压
配置环境变量
1. 将kylin_home的路径添加到配置文件中
2. 将Hcatalog_HOME的配置,这个配置在hive安装目录下的hcatalog文件夹中
export hive_dependency=/home/hadoop/hive/conf:/home/hadoop/hive/lib/*:/home/hadoop/hive/hcatalog/share/hcatalog/hive-hcatalog-core-2.0.0.jar
3. 注意:是每个节点的配置文件都要添加
配置kylin.sh
1. 在kylin安装目录下的bin/kylin.sh
2. export KYLIN_HOME= // 显式声明kylin_home
3. export export HBASE_CLASSPATH_PREFIX=${tomcat_root}/bin/bootstrap.jar:${tomcat_root}/bin/tomcat-juli.jar:${tomcat_root}/lib/*:$hive_dependency:$HBASE_CLASSPATH_PREFIX //在HBASE_CLASSPATH_PREFIX中显示增加$hive_dependency依赖
配置kylin_hive_conf.xml文件
1. 只需要将hive表的元数据信息的服务的地址在哪里开启即可(是启动metastore服务的那台主机IP)
<property> <name>hive.metastore.uris</name> <value>thrift://huabingood:9083</value> <description>远程访问的metastore所在的地址于端口</description> </property> |
修改kylin.properties配置文件(这个不配置也能使用,不建议配置)
1. 注意,网上流传的这些配置的修改都落后了
kylin.rest.servers=master:7070 #定义kylin用于MR jobs的job.jar包和hbase的协处理jar包,用于提升性能。 kylin.job.jar=/home/hadoop/kylin/lib/kylin-job-1.6.0-SNAPSHOT.jar kylin.coprocessor.local.jar=/home/hadoop/kylin/lib/kylin-coprocessor-1.6.0-SNAPSHOT.jar |
2. 真正的配置是这些
kylin.server.cluster-servers= |
kylin.engine.mr.job-jar= |
kylin.storage.hbase.coprocessor-local-jar= |
检查配置环境(实际上就是创建在hdfs上的路径)
1. ${kylin_home}/bin/check-env.sh
启动kylin
1. ${kylin_home}/bin/kylin.sh start
2. ${kylin_home}/bin/kylin.sh stop
webUI访问
安装过程中的报错
java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf
1. 这个错误完全是kylin找不到hive的jar包导致的。我们只需将hive安装目录下lib中的jar包放到kylin安装目录下的lib中即可
2. 网上有说需要修改hadoop-env.sh配置文件,添加如下内容:
export HBASE_HOME=/data/hbase
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/lib/ # 添加classpath时,要将以前的加上,否则就是覆盖,会导致问题
java.lang.RuntimeException: cannot get HiveTableMeta
1. 查看表名是否写错
2. 如果表名没错的话,hiveserver2以及metastore是否开启;是否在hive-site.xml中配置了hive.metastore.uris属性
3. 将hive-stie.xml放到(建议使用软连接)kylin安装目录下的conf中,即使已经有了kylin_hive_conf.xml
org.apache.kylin.job.exception.ExecuteException: org.apache.kylin.job.exception.ExecuteException: java.lang.NoClassDefFoundError: org/apache/hive/hcatalog/mapreduce/HCatInputFormat
1. 网上说是HBASE_HOME别的设置覆盖掉了,导致系统找不到hbase的路径,就会报这个错误。
2. 相关的官方解答
参考文献