分享

Kylin环境搭建和操作

问题导读:

1.什么是Kylin?
2.怎样搭建Kylin环境?
3.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。

659735-20160510152629155-400546619.png

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

4.点击Monitor页面

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

659735-20160510153519827-1923696682.png

说明: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权限授予

659735-20160510155208702-1213851217.png
点击+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概览,如下所示:

1.png

  • 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中。

Kylin使用Hive和MR来构建Cube,Hive用作预链接,MR用作预聚合,HDFS用来储存构建Cube时的中间文件,HBase用来存储Cube,HBase的Coprocessor(协处理器)用来响应查询。





已有(3)人评论

跳转到指定楼层
恋枫缩影 发表于 2016-6-13 00:17:49
以前没听说过,以后研究下,不太明白用来干什么
回复

使用道具 举报

xuliang123789 发表于 2016-6-13 08:54:32
正需要,谢谢楼主,学习一下,赞~
回复

使用道具 举报

jianlei1109 发表于 2016-6-13 10:08:55
谢谢楼主,不过如果学习的朋友得注意hadoop生态圈的版本,低于2.6的好像不能用麒麟,它好像是最低都是基于2.6的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条