一.Kylin的伪分布式安装

时间:2021-10-07 01:53:56

一.伪分布式安装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访问

1. http://hostname:7070/kylin

安装过程中的报错

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. 相关的官方解答

A. http://apache-kylin.74782.x6.nabble.com/NoClassDefFoundError-org-apache-hive-hcatalog-mapreduce-HCatInputFormat-td1156.html

参考文献

https://segmentfault.com/a/1190000011506398