阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

大数据分析平台Apache Kylin的部署(Cube构建使用)

194次阅读
没有评论

共计 3112 个字符,预计需要花费 8 分钟才能阅读完成。

前言
Apache Kylin 是一个开源的分布式分析引擎,最初由 eBay 开发贡献至开源社区。它提供 Hadoop 之上的 SQL 查询接口及多维分析(OLAP)能力以支持大规模数据,能够处理 TB 乃至 PB 级别的分析任务,能够在亚秒级查询巨大的 Hive 表,并支持高并发。

Kylin 的理论基础:空间换时间。
Kylin 从数据仓库中最常用的 Hive 中读取源数据,使用 MapReduce 作为 Cube 构建的引擎,并把预计算结果保存在 HBase 中,对外暴露 Rest API/JDBC/ODBC 的查询接口。

部署 Kylin
(一)下载安装
写这篇博客时,最新版为 2.0.0 beta 版, 最新的正式版为 1.6.0, 所以我使用的 1.6.0。
可以直接下载源码包编译安装,也可以根据自己的 hadoop 环境版本下载对应的二进制安装包。

Apache Kylin v1.6.0 正式发布  http://www.linuxidc.com/Linux/2016-12/138224.htm

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

我使用的是 HDP2.4.2,Hbase 版本是 1.1.2。直接下载的是二进制包安装。

$ cd /opt
$ wget http://ftp.tc.edu.tw/pub/Apache/kylin/apache-kylin-1.6.0/apache-kylin-1.6.0-hbase1.x-bin.tar.gz
$ tar xf apache-kylin-1.6.0-hbase1.x-bin.tar.gz
$ vim /etc/profile
export KYLIN_HOME=/opt/apache-kylin-1.6.0-hbase1.x-bin
$ source /etc/profile

(二)环境检查
$cd /opt/apache-kylin-1.6.0-hbase1.x-bin
$./bin/check-env.sh
KYLIN_HOME is set to /opt/apache-kylin-1.6.0-hbase1.x-binmkdir: Permission denied: user=root, access=WRITE, inode=”/kylin”:hdfs:hdfs:drwxr-xr-xfailed to create /kylin, Please make sure the user has right to access /kylin
 
# 提示使用 hdfs 用户
#check-env.sh 脚本执行的是检查本地 hive,hbase,hadoop 等环境情况。
# 并会在 hdfs 中创建一个 kylin 的工作目录。
 
$ su hdfs
$ ./bin/check-env.sh 
KYLIN_HOME is set to /opt/apache-kylin-1.6.0-hbase1.x-bin
$ hadoop fs -ls /  #多了一个 /kylin 的目录 drwxr-xr-x  – hdfs  hdfs            0 2017-01-19 10:08 /kylin

(三)启动
$ chown hdfs.hadoop /opt/apache-kylin-1.6.0-hbase1.x-bin 
$ ./bin/kylin.sh start
A new Kylin instance is started by hdfs, stop it using “kylin.sh stop”Please visit 
 You can check the log at /opt/apache-kylin-1.6.0-hbase1.x-bin/logs/kylin.log

(四)进入页面
http://localhost:7070/kylin
user:ADMIN    passwd:KYLIN

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

使用 Kylin

(一)添加新的项目

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

给项目起一个名字,添加项目描述。

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

给项目添加数据源(加载 hive 数据表)

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

在数据源的页面,可以手动填写 hive 表名

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

成功加载了 resource 表的数据

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

这时就可以看到对应表的字段属性。

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

(二)创建 model(模型)

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

新建 model

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

编辑 model 名字和描述

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

选择数据表

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

接下来选择维度和度量,这是构建预计算模型 cube 中最为重要的两个属性。

度量:度量是具体考察的聚合数量值,例如:销售数量、销售金额、人均购买量。计算机一点描述就是在 SQL 中就是聚合函数。

例如:select cate,count(1),sum(num) from fact_table where date>’20161112’group by cate;

count(1)、sum(num)是度量

维度:维度是观察数据的角度。例如:销售日期、销售地点。计算机一点的描述就是在 SQL 中就是 where、group by 里的字段

例如:select cate,count(1),sum(num) from fact_table where date>’20161112’group by cate;

date、cate 是维度

选择要分析的维度字段

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

选择要分析的度量字段

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

设置表中的时间字段

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

(三)创建 cube(立方体)

Cube 构建需要依赖前面创建的 model。选择 model,设置 cube 名。

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

从上面 model 设置的维度字段中选择你需要分析的字段。

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

选择度量。

第一个_COUNT_是默认要计算的。

第二个 COUNT_DISTINCT,可以去重计算得到有多少个 IP 地址,即通常的 UV。

(COUNT_DISTINCT 计算时是有精确度选择的,计算越精准需要的时间就越长)

第三个 TOP_N,是用来计算排名的。

第四个 MAX,是用来计算最大值的

还有其他的 MIN,SUM 等各种计算表达式。

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

后面的几个基本上就没有什么要设置的了,直接 Next 了,最后保存 cube 就好了。

(四)构建 cube

创建好 cube 之后,我们只是得到了一个计算模型。需要将数据按照我们设定的模型去计算,才能得到相应的结果。

下面开始构建 cube,在 Action 中选择 Build

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

选择要构建的时间范围(如果数据是持续写入 hive 表,那么可以使用 cube 持续构建)

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

进入 Monitor 中查看正在构建的 Cube,和历史构建的 cube

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

(五)查询

cube 构建成功后,数据就已经计算过,并将计算结果存储到了 Hbase。那么这时候我们可以使用 SQL 在 kylin 中进行查询。

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

比较一下在 kylin 中查询和直接在 hive 中查询的速度。

执行一个 group by order by 的查询。

SQL:select ip, max(loadmax)  as loadmax,max(connectmax) as connectmax, max(eth0max) as eth0max, max(eth1max) as eth1max ,max(rospace) as rospace,max(team) as team  from resource  group by ip order by loadmax asc;

在 Kylin 预计算之后,这条查询只用了 0.11s

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

直接在 hive 中进行计算时间是 30.05s

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

时间相差 270 倍!!!

(六)样例数据

#kylin 自带一个样例,包含 1w 条数据的样本

$ ./bin/sample.sh
Sample cube is created successfully in project ‘learn_kylin’.
Restart Kylin server or reload the metadata from web UI to see the change.
$ ./bin/kylin.sh stop
stopping Kylin:15334
$ ./bin/kylin.sh start

可以在 Kylin 中看到 learn_kylin 这个项目。并且有创建好的 model 和 cube,可以供参考和学习。

大数据分析平台 Apache Kylin 的部署(Cube 构建使用)

 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142135.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3112字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中