Kylin环境搭建和操作

Kylin是一个开源的分布式的OLAP分析引擎,基于Hadoop提供SQL接口和OLAP接口,支持TB到PB级别的数据量。Kylin环境搭建前,需要安装JDK,MySQL,Tomcat,Hadoop,HBase,Hive,ZooKeeper等软件。由于我们使用Ambari对集群进行管理,所以这些工作已经做好,只简单介绍Kylin环境搭建。

一. Kylin环境搭建

下载apache-kylin-1.5.1-bin.tar.gz并且解压,配置Tomcat和Kylin的环境变量。然后主要是配置kylin.properties,比如kylin.rest.servers等。最后kylin.sh start启动Kylin,kylin.sh stop关闭Kylin。登陆http://hostname:7070/kylin访问Kylin应用程序,用户名和密码分别为ADMIN,KYLIN。

说明:需要说明的是apache-kylin-1.5.1-bin.tar.gz中已经包含Tomcat。

Kylin的一些特性,如下所示:

  • 超级快的 OLAP 引擎,具备可伸缩性
  • 为 Hadoop 提供 ANSI-SQL 接口
  • 交互式查询能力
  • MOLAP Cube
  • 可与其它BI工具无缝集成,比如Tableau,而Microstrategy和Excel将很快推出
  • 作业管理和监控
  • 压缩和编码的支持
  • Cube 的增量更新
  • Leverage HBase Coprocessor for query latency
  • Approximate Query Capability for distinct Count (HyperLogLog)
  • 易用的Web管理、构建、监控和查询Cube的接口
  • Security capability to set ACL at Cube/Project Level
  • 支持LDAP集成

 

二. Kylin Cube建立和Job监控

我们使用官方自带的例子sample.sh进行学习,如下所示:

1.运行${KYLIN_HOME}/bin/sample.sh,并重启Kylin。

解析:

在Hive默认数据库下面生成了三张表,分别为kylin_cal_dt,kylin_category_groupings,kylin_sales。

2.登陆http://hostname:7070/kylin,并选择工程"learn_kylin"。

3.点击Model页面中Actions选项中的Build。

技术分享

说明:点击END DATE输入框选择增量构建这个cube的结束日期,并Submit提交请求。

4.点击Monitor页面

提交请求成功后,将会看到新建了job。点击job详情按钮查看显示于右侧的详细信息。如下所示:

技术分享

说明:job详细信息为跟踪一个job提供了它的每一步记录。可以将光标停放在一个步骤状态图标上查看基本状态和信息。点击每个步骤显示的图标按钮查看详情:Parameters、Log、MRJob、EagleMonitoring。

5.点击Insight页面中的New Query选项

解析:

select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt

 

三. Kylin Cube权限授予

技术分享

点击+Grant按钮进行授权。一个cube有四种不同的权限,分别是CUBE QUERY,CUBE OPERATION,CUBE MANAGEMENT,CUBE ADMIN。授权对象也有两种:User和Role。Role是指一组拥有同样权限的用户。

1. 授予用户权限

解析:

选择User类型,输入你想要授权的用户的用户名并选择相应的权限。选择User类型,输入你想要授权的用户的用户名并选择相应的权限。然后点击Grant按钮提交请求。在这一操作成功后,便会在表中看到一个新的表项。可以选择不同的访问权限来修改用户权限。点击Revoke按钮可以删除一个拥有权限的用户。

2. 授予角色权限

选择Role类型,通过点击下拉按钮选择你想要授权的一组用户并选择一个权限。然后点击Grant按钮提交请求。在这一操作成功后,便会在表中看到一个新的表项。可以选择不同的访问权限来修改组权限。点击Revoke按钮可以删除一个拥有权限的组。

 

四. Kylin工作原理

Kylin OLAP引擎基础框架,包括元数据(Metadata)引擎,查询引擎,Job引擎及存储引擎等,同时包括REST服务器以响应客户端请求。Apache Kylin概览,如下所示:

技术分享

  • REST Server:提供一些RESTFul接口,例如创建Cube、构建Cube、刷新Cube、合并Cube等Cube的操作,Project、Table、Cube等元数据管理、用户访问权限、系统配置动态修改等。除此之外还可以通过该接口实现SQL的查询,这些接口一方面可以通过第三方程序的调用,另一方也被Kylin的Web界面使用。
  • JDBC/ODBC接口:Kylin提供了JDBC的驱动,驱动的CLASSNAME为org.apache.kylin.jdbc.Driver,使用URL的前缀jdbc:kylin:,使用JDBC接口的查询走的流程和使用RESTFul接口查询走的内部流程是相同的。这类接口也使得Kylin很好的兼容Tebleau甚至Mondrian。
  • Query引擎:Kylin使用一个开源的Calcite框架实现SQL的解析,相当于SQL引擎层。
  • Routing:该模块负责将解析SQL生成的执行计划转换成Cube缓存的查询,Cube是通过预计算缓存在HBase中,这部分查询是可以在秒级甚至毫秒级完成,而还有一些操作使用过查询原始数据(存储在Hadoop上通过Hive上查询),这部分查询的延迟比较高。
  • Metadata:Kylin中有大量的元数据信息,包括Cube的定义,星状模型的定义、Job的信息、Job的输出信息、维度的Directory信息等等,元数据和Cube都存储在HBase中,存储的格式是JSON字符串,除此之外,还可以选择将元数据存储在本地文件系统。
  • Cube构建引擎:这个模块是所有模块的基础,它负责预计算创建Cube,创建的过程是通过Hive读取原始数据,然后通过一些MapReduce计算生成HTable然后加载到HBase中。

 

参考文献:

[1] APACHE KYLIN概览:http://kylin.apache.org/cn/

[2] 分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例:http://lxw1234.com/archives/2016/04/643.htm

[3] Apache Kylin的快速数据立方体算法:http://www.infoq.com/cn/articles/apache-kylin-algorithm

[4] 面向大数据的终极OLAP引擎方案:http://www.csdn.net/article/2014-10-25/2822286

[5] Kylin的OLAP引擎:http://www.mamicode.com/info-detail-1015006.html

[6] Apache Kylin大数据时代的OLAP利器:http://www.bitstech.net/author/huwei/

[7] Kylin的Cube模型:http://www.cnblogs.com/en-heng/p/5239311.html

文章来自:http://www.cnblogs.com/shengshengwang/p/5477220.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3