CDH+Kylin 三部曲之三:Kylin 官方 demo
欢迎访问我的 GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
本文是《CDH+Kylin 三部曲》系列的终篇,先简单回顾前面的内容:
《CDH+Kylin三部曲之一:准备工作》:准备好机器、脚本、安装包;
《CDH+Kylin三部曲之二:部署和设置》:完成 CDH 和 Kylin 部署,并在管理页面做好相关的设置;
现在 Hadoop、Kylin 都就绪了,接下来实践 Kylin 的官方 demo;
Yarn 参数设置
Yarn 的内存参数设置之后一定要重启 Yarn 使之生效,否则 Kylin 提交的任务是会由于资源限制而无法执行;
关于 Kylin 官方 demo
下图是官方 demo 的脚本的一部分(create_sample_tables.sql),基于 HDFS 数据创建 Hive 表:
通过脚本可见 KYLIN_SALES 为事实表,其他是维度表,并且 KYLIN_ACCOUNT 和 KYLIN_COUNTRY 存在关联,因此维度模型符合 Snowflake Schema;
导入样例数据
SSH 登录 CDH 服务器
切换到 hdfs 账号: su - hdfs
执行导入命令: ${KYLIN_HOME}/bin/sample.sh
导入成功,控制台输出如下:
检查数据
检查数据,执行 beeline 进入会话模式(hive 官方推荐用 beeline 取代 Hive CLI):
在 beeline 会话模式输入链接 URL: !connect jdbc:hive2://localhost:10000 ,按照提示输入账号 hdfs ,密码直接回车:
用命令 show tables 查看当前的 hive 表,已建好:
查出订单的最早和最晚时间,后面构建 Cube 的时候会用到,执行 SQL: select min(PART_DT), max(PART_DT) from kylin_sales; ,可见最早 2012-01-01 ,最晚 2014-01-01 ,整个查询耗时 18.87 秒 :
构建 Cube:
数据准备完成,可以构建 Kylin Cube 了:
登录 Kylin 网页:http://192.168.50.134:7070/kylin
加载 Meta 数据,如下图:
如下图红框所示,数据加载成功:
在 Model 页面可以看到事实表和维度表,如下图的操作可以创建一个 MapReduce 任务,计算维度表 KYLIN_ACCOUNT 每个列的基数(Cardinality):
去 Yarn 页面(CDH 服务器的 8088 端口),如下图,可见有个 MapReduce 类型的任务正在执行中:
上述任务很快就能完成(10 多秒),此时刷新 Kylin 页面,可见 KYLIN_ACCOUNT 表的 Cardinality 数据已经计算完成了(hive 查询得到 ACCOUNT_ID 数量是 10000,但下图的 Cardinality 值为 10420,Kylin 对 Cardinality 的计算采用的是 HyperLogLog 的近似算法,与精确值有误差,其他四个字段的 Cardinality 与 Hive 查询结果一致):
接下来开始构建 Cube:
日期范围,刚才 Hive 查询结果是 2012-01-01 到 2014-01-01 ,注意截止日期要超过 2014-01-01:
在 Monitor 页面可见进度:
去 Yarn 页面(CDH 服务器的 8088 端口),可以看到对应的任务和资源使用情况:
build 完成后,会出现 ready 图标:
查询
先尝试查询交易的最早和最晚时间,这个查询在 Hive 上执行的耗时是 18.87 秒 ,如下图,结果一致,耗时 0.14 秒 :
下面这个 SQL 是 Kylin 官方示例用来对比响应时间的,对订单按日期聚合,再按日期排序,然后接下来分别用 Kylin 和 Hive 查询:
Kylin 查询耗时 0.13 秒 :
Hive 查询,结果相同,耗时 40.196 秒 :
最后来看下资源使用情况,Cube 构建过程中,18G 内存被使用:
至此,CDH+Kylin 从部署到体验就已完成,《CDH+Kylin 三部曲》系列也结束了,如果您正在学习 Kylin,希望本文能够给您一些参考。
欢迎关注 InfoQ:程序员欣宸
版权声明: 本文为 InfoQ 作者【程序员欣宸】的原创文章。
原文链接:【http://xie.infoq.cn/article/57a384a597c74f9978dfbd286】。文章转载请联系作者。
评论