CDH6.3.0+Kylin集群实战

网友投稿 350 2022-11-21

CDH6.3.0+Kylin集群实战

1. Kylin介绍

Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

2. Kylin架构

REST Server

REST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发工作。 此类应用程序可以提供查询、获取结果、触发cube构建任务、获取元数据以及获取用户权限等等。另外可以通过Restful接口实现SQL查询。

查询引擎(Query Engine)

当cube准备就绪后,查询引擎就能够获取并解析用户查询。它随后会与系统中的其它组件进行交互,从而向用户返回对应的结果。

路由器(Routing)

在最初设计时曾考虑过将Kylin不能执行的查询引导去Hive中继续执行,但在实践后发现Hive与Kylin的速度差异过大,导致用户无法对查询的速度有一致的期望,很可能大多数查询几秒内就返回结果了,而有些查询则要等几分钟到几十分钟,因此体验非常糟糕。最后这个路由功能在发行版中默认关闭。

元数据管理工具(Metadata)

Kylin是一款元数据驱动型应用程序。元数据管理工具是一大关键性组件,用于对保存在Kylin当中的所有元数据进行管理,其中包括最为重要的cube元数据。其它全部组件的正常运作都需以元数据管理工具为基础。 Kylin的元数据存储在hbase中。

任务引擎(Cube Build Engine)

这套引擎的设计目的在于处理所有离线任务,其中包括shell脚本、Java API以及Map Reduce任务等等。任务引擎对Kylin当中的全部任务加以管理与协调,从而确保每一项任务都能得到切实执行并解决其间出现的故障。

3. Kylin特点

Kylin的主要特点包括支持SQL接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI工具集成等。

准S标准SQL接口:Kylin是以标准的SQL作为对外服务的接口。支持超大数据集:Kylin对于大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年eBay的生产环境中就能支持百亿记录的秒级查询,之后在移动的应用场景中又有了千亿记录秒级查询的案例。亚秒级响应:Kylin拥有优异的查询相应速度,这点得益于预计算,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需的计算量,提高了响应速度。可伸缩性和高吞吐率:单节点Kylin可实现每秒70个查询,还可以搭建Kylin的集群。BI工具集成

Kylin可以与现有的BI工具集成,具体包括如下内容。ODBC:与Tableau、Excel、PowerBI等工具集成JDBC:与Saiku、BIRT等Java工具集成RestAPI:与JavaScript、Web网页集成

Kylin开发团队还贡献了Zepplin的插件,也可以使用Zepplin来访问Kylin服务。

5. Kylin集群部署

5.1 安装环境准备

安装Kylin前需先部署好Hadoop、Hive、Zookeeper、HBase,并且需要在/etc/profile中配置以下环境变量HIVE_HOME,SPARKHOME,HBASE_HOME和JAVA_HOME,记得source使其生效。

CDH环境变量配置如下:

vim /etc/profile下追加:

export HIVE_HOME=/opt/cloudera/parcels/CDH/lib/hive #hive环境export SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark #spark环境export HBASE_HOME=/opt/cloudera/parcels/CDH/lib/hbase #hbase环境export KYLIN_HOME=/opt/kylin #kylin环境,稍后部署

JAVA环境变量配置如下(hadoop集群应已配置):

vim /etc/profile.d/jdk.sh

#set default jdk1.8 envJAVA_HOME=/usr/java/jdk1.8.0_181-clouderaJRE_HOME=/usr/java/jdk1.8.0_181-cloudera/jrePATH=$PATH:$JAVA_HOME/binexport JAVA_HOME JRE_HOME PATH

5.2 安装主机列表

主机

主机名

角色

192.168.116.42

server-3

all

192.168.116.43

server-4

query

192.168.116.44

server-5

query

kyLin下载:​​kylin下载地址 ​​

5.3 安装的版本

apache-kylin-3.0.0.tar.gz

5.4 解压&配置

将下载好的apache-kylin-3.0.0.tar.gz上传至server-3主机的/opt下,然后解压并修改名为kylin,操作如下:

[root@server-3 opt]# mv apache-kylin-3.0.0-bin-hadoop3 kylin

配置kylin

登陆sever-3主机:vim /optkylin/conf/kylin.properties

kylin.metadata.url= kylin_metadata@hbasekylin.server.mode=all // 只能有一个节点是all,其他节点为querykylin.server.cluster-servers=server-3:7070,server-4:7070,server-5:7070

配置加载hbase common lib

vi /opt/cloudera/parcels/CDH/lib/hbase/bin/hbase改CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar成CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar:/opt/cloudera/parcels/CDH/lib/hbase/lib/*

将sever-3主机修改好的kylin发至其它两台主机,操作如下:

scp -r /opt/kylin server-4:/opt/scp -r /opt/kylin server-5:/opt/

修改sever-4,sever-5主机的/opt/kylin/conf/kylin.properties配置如下:

kylin.server.mode=

分别启动各自主机的kylin服务:

/opt/kylin/bin/kylin.sh start

登陆地址:FAQ

6.1 Argument list too long

[root@server-4 bin]# vim cached-hbase-dependency.sh[root@server-4 bin]# ./kylin.sh startRetrieving hadoop conf dir...KYLIN_HOME is set to /opt/kylinUsing cached dependency...Start to check whether we need to migrate acl tablesUsing cached dependency.../opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/bin/../lib/hbase/bin/hbase: line 373: /usr/java/jdk1.8.0_181-cloudera/bin/java: Argument list too long/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/bin/../lib/hbase/bin/hbase: line 674: /usr/java/jdk1.8.0_181-cloudera/bin/java: Argument list too long/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/bin/../lib/hbase/bin/hbase: line 674: /usr/java/jdk1.8.0_181-cloudera/bin/java: SuccessERROR: Unknown error. Please check full log.

Argument list too long是因为句柄数不足导致,修改如下:

vim /etc/security/limits.conf下追加:

* soft memlock unlimited* hard memlock unlimited* soft nproc 65535* hard nproc 65535* soft nofile 65536* hard nofile 65536* soft stack 16384* hard stack 32768

6.2 无法创建/kylin目录

因为我是root用户启动的,报错是如下:

KYLIN_HOME is set to /opt/kylinmkdir: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x

解决如下:

[hdfs@node03 ~]$ hdfs dfs -setfacl -R -m user:root:rwx /

6.3 org.apache.hadoop.hbase.util.GetJavaProperty

解决方案:

vim /opt/cloudera/parcels/CDH/lib/hbase/bin/hbase

编辑这个文件,然后在169行左右修改配置:

修改前:

CLASSPATH="${HBASE_CONF_DIR}"CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar

修改后:

CLASSPATH="${HBASE_CONF_DIR}"CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar:/opt/cloudera/parcels/CDH/lib/hbase/lib/*

6.4 org/apache/commons/configuration/ConfigurationException

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/configuration/ConfigurationException

原因:

kylin的tomcat容器缺少commons-configuration-1.x.jar依赖包

解决方式:

CDH上有commons-configuration-1.9.jar的jar包,直接拷贝到${kylin_home}/tomcat/webapps/kylin/WEB-INF/lib即可

cp /opt/cloudera/cm/cloudera-navigator-audit-server/commons-configuration-1.9.jar /opt/kylin/tomcat/webapps/kylin/WEB-INF/lib

重新启动kylin就可以了!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据湖是谁?那数据仓库又算什么?
下一篇:EMBEST ATMEL SAM9G45全功能评估开发解决方案
相关文章

 发表评论

暂时没有评论,来抢沙发吧~