大数据之Kylin入门——第一章Kylin简介

1.Kylin是什么

Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口以及多维分析(OLAP)能力以支持超大规模数据,最初由eBay开发并贡献至开源社区,名字也很中国风,麒麟。Kylin的很多内容很多都是国内开发人员开发贡献的,官方文档中文版也非常友好。Kylin它能在亚秒内查询巨大的Hive表。

第一次看到这段简短的文字说明,我当时就纳闷了,Kylin底层究竟做了什么,为什么能在亚秒级别查询Hive表。难道Hive真就这么垃圾吗?其实不然,Kylin其实是对要查询的表的指标进行了多维度的hive查询,也就是做了预计算,并将最终结果保存在hbase中。所谓的亚秒查询也就是最后从hbase里面查询结果而已,现在看来也没那么邪乎,hive也并不是想象的那么垃圾。。。

 

Kylin中文官网:http://kylin.apache.org/cn/

 

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(Cube构建引擎)

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

 

3.Kylin安装

Kylin 依赖于 Hadoop 集群处理大量的数据集。您需要准备一个配置好 HDFS,YARN,MapReduce,Hive, HBase,Zookeeper 和其他服务的 Hadoop 集群供 Kylin 运行。Kylin可以安装在任何节点上。

 

1.下载解压。

2.配置HADOOP_HOME,HIVE_HOME,HBASE_HOME系统变量。

3.启动hadoop,zookeeper,hbase,hive服务。我配置了三台节点,查看各个节点的进程如下:

4.启动Kylin。

bin/kylin.sh start

5.在web页面登陆查看

http://hadoop102:7070/kylin/

默认账号:ADMIN

默认密码:KYLIN

 

我启动kylin的时候报了2个错。

1.找不到hive-site.xml,虽然我配置了hive目录的系统变量,但是没有启动hive的服务,所以要启动hive的服务才行。

hive --service metastore > metastore.log 2>&1 &
hive --service hiveserver2 > hiveserver2.log 2>&1 &

 

2.识别不了zookeeper地址。

这个原因是hbase下的配置文件hbase-site.xml中配置的zookeeper地址加上了2181端口号,去掉端口号,重启hbase即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章