CentOS7虚拟机部署Kylin

1. Kylin 定义

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

2. Kylin架构


1)REST Server
REST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发工作。 此类应用程序可以提供查询、获取结果、触发cube构建任务、获取元数据以及获取用户权限等等。另外可以通过Restful接口实现SQL查询。
2)查询引擎(Query Engine)
当cube准备就绪后,查询引擎就能够获取并解析用户查询。它随后会与系统中的其它组件进行交互,从而向用户返回对应的结果。
3)路由器(Routing)
在最初设计时曾考虑过将Kylin不能执行的查询引导去Hive中继续执行,但在实践后发现Hive与Kylin的速度差异过大,导致用户无法对查询的速度有一致的期望,很可能大多数查询几秒内就返回结果了,而有些查询则要等几分钟到几十分钟,因此体验非常糟糕。最后这个路由功能在发行版中默认关闭。
4)元数据管理工具(Metadata)
Kylin是一款元数据驱动型应用程序。元数据管理工具是一大关键性组件,用于对保存在Kylin当中的所有元数据进行管理,其中包括最为重要的cube元数据。其它全部组件的正常运作都需以元数据管理工具为基础。 Kylin的元数据存储在hbase中。
5)任务引擎(Cube Build Engine)
这套引擎的设计目的在于处理所有离线任务,其中包括shell脚本、Java API以及Map Reduce任务等等。任务引擎对Kylin当中的全部任务加以管理与协调,从而确保每一项任务都能得到切实执行并解决其间出现的故障。

3. Kylin特点

Kylin的主要特点包括支持SQL接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI工具集成等。
1)标准SQL接口:Kylin是以标准的SQL作为对外服务的接口。
2)支持超大数据集:Kylin对于大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年eBay的生产环境中就能支持百亿记录的秒级查询,之后在移动的应用场景中又有了千亿记录秒级查询的案例。
3)亚秒级响应:Kylin拥有优异的查询相应速度,这点得益于预计算,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需的计算量,提高了响应速度。
4)可伸缩性和高吞吐率:单节点Kylin可实现每秒70个查询,还可以搭建Kylin的集群。
5)BI工具集成
Kylin可以与现有的BI工具集成,具体包括如下内容。
ODBC:与Tableau、Excel、PowerBI等工具集成
JDBC:与Saiku、BIRT等Java工具集成
RestAPI:与JavaScript、Web网页集成
Kylin开发团队还贡献了Zepplin的插件,也可以使用Zepplin来访问Kylin服务。

4. Kylin安装

4.1 Kylin依赖环境

安装Kylin前需先部署好Hadoop、Hive、Zookeeper、HBase,并且需要在/etc/profile中配置以下环境变量HADOOP_HOME,HIVE_HOME,HBASE_HOME,记得source使其生效。
1)安装JDK,Hadoop参考
https://www.jianshu.com/p/2a947044f2dc
2)安装 Zookeeper参考
https://www.jianshu.com/p/8935a8a34d6a
3)安装 Hbase参考
https://www.jianshu.com/p/5613ceb3ab38
4)安装Hive参考
https://www.jianshu.com/p/741fa67cf66b

hive需要在环境变量配置HIVE_CONF

export HIVE_CONF=$HIVE_HOME/conf
export PATH=$PATH:$HIVE_CONF
4.2 Kylin搭建

1)上传Kylin安装包apache-kylin-3.0.2-bin.tar.gz
2)解压apache-kylin-3.0.2-bin.tar.gz到/usr/local/src

(py2) [root@bigdata101 src]# tar -zxvf apache-kylin-3.0.2-bin.tar.gz 
4.3 Kylin兼容性问题

修改/usr/local/src/apache-kylin-3.0.2-bin/bin/find-spark-dependency.sh,排除冲突的jar包
需要增加的内容:! -name 'jackson' ! -name 'metastore'
注意前后保留空格

4.4 Kylin启动

(1)启动Kylin之前,需先启动Hadoop(hdfs,yarn,jobhistoryserver)、Zookeeper、Hbase
启动jobhistoryserver命令:

(py2) [root@bigdata101 src]# mr-jobhistory-daemon.sh start historyserver

(2)启动Kylin

(py2) [root@bigdata101 apache-kylin-3.0.2-bin]# bin/kylin.sh start
Retrieving hadoop conf dir...
KYLIN_HOME is set to /usr/local/src/apache-kylin-3.0.2-bin
Retrieving hive dependency...
Retrieving hbase dependency...
Retrieving hadoop conf dir...
Retrieving kafka dependency...
Retrieving Spark dependency...
Start to check whether we need to migrate acl tables
Using cached dependency...
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0
SLF4J: Class path contains multiple SLF4J bindings.

启动之后查看各个节点进程:

(py2) [root@bigdata101 apache-kylin-3.0.2-bin]# xcall.sh jps
--------- bigdata101 ----------
106912 RunJar
80419 HMaster
107554 Jps
24166 ResourceManager
3415 QuorumPeerMain
82073 JobHistoryServer
23516 NameNode
23836 SecondaryNameNode
--------- bigdata102 ----------
9760 QuorumPeerMain
88337 Jps
86706 HRegionServer
29333 NodeManager
29195 DataNode
--------- bigdata103 ----------
17507 DataNode
75495 Jps
73785 HRegionServer
3179 QuorumPeerMain
17629 NodeManager

在http://bigdata101:7070/kylin查看Web页面


用户名为:ADMIN,密码为:KYLIN

3)关闭Kylin

(py2) [root@bigdata101 apache-kylin-3.0.2-bin]# bin/kylin.sh stop

你可能感兴趣的:(CentOS7虚拟机部署Kylin)