Kylin2.6.5入门:基于HDP3.1.4安装部署问题记录

一、概述


    Kylin依赖Hadoop集群来处理大型数据集。您需要准备一个Hadoop集群,其中包含HDFS、YARN、MapReduce、Hive、HBase、Zookeeper等服务,以便Kylin运行。我这里下载的kylin版本是2.6.5,基于HDP3.1.4进行安装的,各个组件的版本如下:

HDFS                    

3.1.1.3.1

Hive

3.1.0

HBase

2.0.2

Kylin
2.6.5


    从官网下载kylin时,需要下载hadoop3版本对应的tar包,截图如下:

图片


二、安装配置


    Kylin可以在Hadoop集群的任何节点上启动。为了方便,您可以在主节点上运行Kylin。为了更好的稳定性,建议将Kylin部署在一个干净的Hadoop客户端节点上,并安装Hive、HBase、HDFS和其他命令行并配置客户端。

    
    运行Kylin的Linux帐户必须能够访问Hadoop集群,包括创建/写入HDFS文件夹、Hive表、HBase表和提交MapReduce任务的权限,如果没有操作权限也可以手动在创建,然后授权即可,这里我就是手动提前创建然后授权,下面会详细讲解。


1.解压tar包,并重命名,命令如下:

tar -zxvf apache-kylin-2.6.5-bin-hadoop3.tar.gzmv apache-kylin-2.6.5-bin-hadoop3  kylin-2.6.5


2.从v2.6.1开始,Kylin将不再发布Spark二进制;您需要单独安装Spark,然后将SPARK_HOME系统环境变量指向它:

export SPARK_HOME=/path/to/spark

或运行脚本下载它,我这里是运行脚本下载的,我这里指定依赖自己下载的spark目录:

$KYLIN_HOME/bin/download-spark.sh


3.Kylin采用默认的配置,对hadoop的依赖可通过配置环境变量解决,在/etc/profile中添加HADOOP_HOME、HIVE_HOME、HBASE_HOME、KYLIN_HOME等环境变量:

export HADOOP_HOME=/usr/hdp/3.1.4.0-315/hadoopexport PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinexport HBASE_HOME=/usr/hdp/3.1.4.0-315/hbaseexport PATH=$HBASE_HOME/bin:$PATHexport HIVE_HOME=/usr/hdp/3.1.4.0-315/hiveexport SPARK_HOME=/data/app/kylin-2.6.5/sparkexport KYLIN_HOME=/data/app/kylin-2.6.5

    source /etc/profile使环境变量生效。

4.由于我这里使用root用户进行安装的,直接启动可能报错,没有权限创建hdfs目录和hbase表,需要在hdfs、hbase提前建好,这里步骤也说一下:


    1).kylin默认需要在hdfs建立目录/kylin

hadoop fs -mkdir  /kylinhadoop fs -chmod -R 777 /kylin

    2).kylin需要在hbase新建元数据表kylin_metadata,建表语句:

create 'kylin_metadata',{NAME => 'f', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'true', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE',TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}

5.启动/停止

    启动之前可运行脚本进行环境配置的检查:

/data/app/kylin-2.6.5/bin/check-env.sh

    启动/停止命令如下:

/data/app/kylin-2.6.5/bin/kylin.sh start  //启动/data/app/kylin-2.6.5/bin/kylin.sh stop   //停止


三、问题汇总

1.启动kylin报错,

Something wrong with Hive CLI or Beeline, please execute Hive CLI or Beeline CLI in terminal to find the root cause.


解决方案:

    修改bin/find-hive-dependency.sh脚本的第37行内容:

hive_env=`hive ${hive_conf_properties} -e set 2>&1 | grep 'env:CLASSPATH'`

修改为:

hive -e set >/tmp/hive_env.txt 2>&1hive_env=`grep 'env:CLASSPATH' /tmp/hive_env.txt`hive_env=`echo ${hive_env#*env:CLASSPATH}`hive_env="env:CLASSPATH"${hive_env}

2.启动时,日志中有一些报错信息,找不到文件:

Caused by: java.io.FileNotFoundException: /data/app/kylin-2.6.5/tomcat/conf/.keystore (没有那个文件或目录)

解决方案:

     kylin内置tomcat的server.xml中里边有个对https的支持那一段没启用的话 注释掉,文件路径:/data/app/kylin-2.6.5/tomcat/conf/server.xml

<!--<Connector port="7443" protocol="org.apache.coyote.http11.Http11Protocol"           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"           keystoreFile="conf/.keystore" keystorePass="changeit"           clientAuth="false" sslProtocol="TLS" /> -->

3.启动报错:

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/configuration/ConfigurationException        at java.lang.Class.getDeclaredMethods0(Native Method)        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)        at java.lang.Class.getDeclaredMethods(Class.java:1975)        at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:613)        at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:524)        at org.springframework.core.MethodIntrospector.selectMethods(MethodIntrospector.java:68)        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.detectHandlerMethods(AbstractHandlerMethodMapping.java:230)        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods(AbstractHandlerMethodMapping.java:214)        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.afterPropertiesSet(AbstractHandlerMethodMapping.java:184)        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.afterPropertiesSet(RequestMappingHandlerMapping.java:127)        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)        ... 25 moreCaused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.ConfigurationException        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)        ... 37 more

解决方案:

    缺少一个lib,将commons-configuration-*.jar 复制到kylin的tomcat/lib 下,拷贝命令:

cp /usr/hdp/share/hst/hst-common/lib/commons-configuration-1.10.jar  /data/app/kylin-2.6.5/tomcat/lib/

4.启动有一些警告,好多个语言包找不到,一共13个语言包:

2020-04-22 12:03:27,719 WARN  [localhost-startStop-1] scan.StandardJarScanner:146 : Failed to scan [file:/usr/hdp/3.1.4.0-315/spark2/jars/derbyLocale_cs.jar] from classloader hierarchyjava.io.FileNotFoundException: /usr/hdp/3.1.4.0-315/spark2/jars/derbyLocale_cs.jar (没有那个文件或目录)        at java.util.zip.ZipFile.open(Native Method)

警告可以不用管(你也可以去中央仓库mvn中下载相应jar包放入目录下,目前版本号为10.15.2.0)

    比如下载derbyLocale_cs-10.15.2.0.jar放入:/data/app/kylin-2.6.5/spark/jars/ 目录下

# cd /data/app/kylin-2.6.5/spark/jars/

# ln -s derbyLocale_cs-10.15.2.0.jar derbyLocale_cs.jar

ln -s derbyLocale_cs-10.15.2.0.jar derbyLocale_cs.jarln -s derbyLocale_de_DE-10.15.2.0.jar derbyLocale_de_DE.jarln -s derbyLocale_es-10.15.2.0.jar derbyLocale_es.jarln -s derbyLocale_fr-10.15.2.0.jar derbyLocale_fr.jarln -s derbyLocale_hu-10.15.2.0.jar derbyLocale_hu.jarln -s derbyLocale_it-10.15.2.0.jar derbyLocale_it.jarln -s derbyLocale_ja_JP-10.15.2.0.jar derbyLocale_ja_JP.jarln -s derbyLocale_ko_KR-10.15.2.0.jar derbyLocale_ko_KR.jarln -s derbyLocale_pl-10.15.2.0.jar derbyLocale_pl.jarln -s derbyLocale_pt_BR-10.15.2.0.jar derbyLocale_pt_BR.jarln -s derbyLocale_ru-10.15.2.0.jar derbyLocale_ru.jarln -s derbyLocale_zh_CN-10.15.2.0.jar derbyLocale_zh_CN.jarln -s derbyLocale_zh_TW-10.15.2.0.jar derbyLocale_zh_TW.jar

    然后再去启动kylin,问题解决。


猜你喜欢

转载自blog.51cto.com/15080019/2653843