CDH+Kylin三部曲之三:Kylin官方demo

欢迎访问个人GitHub

https://github.com/zq2599/blog_demosgit

内容:全部原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;程序员

本文是《CDH+Kylin三部曲》系列的终篇,先简单回顾前面的内容:github

  1. 《CDH+Kylin三部曲之一:准备工做》:准备好机器、脚本、安装包;
  2. 《CDH+Kylin三部曲之二:部署和设置》:完成CDH和Kylin部署,并在管理页面作好相关的设置;

如今Hadoop、Kylin都就绪了,接下来实践Kylin的官方demo;算法

Yarn参数设置

Yarn的内存参数设置以后必定要重启Yarn使之生效,不然Kylin提交的任务是会因为资源限制而没法执行;sql

关于Kylin官方demo

  1. 下图是官方demo的脚本的一部分(create_sample_tables.sql),基于HDFS数据建立Hive表:

在这里插入图片描述

  1. 经过脚本可见<font color="blue">KYLIN_SALES</font>为事实表,其余是维度表,而且KYLIN_ACCOUNT和KYLIN_COUNTRY存在关联,所以维度模型符合Snowflake Schema;

导入样例数据

  1. SSH登陆CDH服务器
  2. 切换到hdfs帐号:<font color="blue">su - hdfs</font>
  3. 执行导入命令:<font color="blue">${KYLIN_HOME}/bin/sample.sh</font>
  4. 导入成功,控制台输出以下:

在这里插入图片描述

检查数据

  1. 检查数据,执行<font color="blue">beeline</font>进入会话模式(hive官方推荐用<font color="blue">beeline</font>取代Hive CLI):

在这里插入图片描述

  1. 在beeline会话模式输入连接URL:<font color="blue">!connect jdbc:hive2://localhost:10000</font>,按照提示输入帐号<font color="blue">hdfs</font>,密码直接回车:

在这里插入图片描述

  1. 用命令<font color="blue">show tables</font>查看当前的hive表,已建好:

在这里插入图片描述

  1. 查出订单的最先和最晚时间,后面构建Cube的时候会用到,执行SQL:<font color="blue">select min(PART_DT), max(PART_DT) from kylin_sales;</font> ,可见最先<font color="blue">2012-01-01</font>,最晚<font color="blue">2014-01-01</font>,整个查询耗时<font color="red">18.87秒</font>:

在这里插入图片描述

构建Cube:

数据准备完成,能够构建Kylin Cube了:shell

  1. 登陆Kylin网页:http://192.168.50.134:7070/kylin
  2. 加载Meta数据,以下图:

在这里插入图片描述

  1. 以下图红框所示,数据加载成功:

在这里插入图片描述

  1. 在Model页面能够看到事实表和维度表,以下图的操做能够建立一个MapReduce任务,计算维度表KYLIN_ACCOUNT每一个列的基数(Cardinality):

在这里插入图片描述

  1. 去Yarn页面(CDH服务器的8088端口),以下图,可见有个MapReduce类型的任务正在执行中:

在这里插入图片描述

  1. 上述任务很快就能完成(10多秒),此时刷新Kylin页面,可见<font color="blue">KYLIN_ACCOUNT</font>表的Cardinality数据已经计算完成了(hive查询获得ACCOUNT_ID数量是10000,但下图的Cardinality值为10420,Kylin对Cardinality的计算采用的是HyperLogLog的近似算法,与精确值有偏差,其余四个字段的Cardinality与Hive查询结果一致):

在这里插入图片描述

  1. 接下来开始构建Cube:

在这里插入图片描述

  1. 日期范围,刚才Hive查询结果是<font color="blue">2012-01-01</font>到<font color="blue">2014-01-01</font>,注意截止日期要超过2014-01-01:

在这里插入图片描述

  1. 在Monitor页面可见进度:

在这里插入图片描述

  1. 去Yarn页面(CDH服务器的8088端口),能够看到对应的任务和资源使用状况:

在这里插入图片描述

  1. build完成后,会出现ready图标:

在这里插入图片描述

查询

  1. 先尝试查询交易的最先和最晚时间,这个查询在Hive上执行的耗时是<font color="red">18.87秒</font>,以下图,结果一致,耗时<font color="red">0.14秒</font>:

在这里插入图片描述

  1. 下面这个SQL是Kylin官方示例用来对比响应时间的,对订单按日期聚合,再按日期排序,而后接下来分别用Kylin和Hive查询:
select part_dt, sum(price) as total_sold, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt;
  1. Kylin查询耗时<font color="red">0.13秒</font>:

在这里插入图片描述

  1. Hive查询,结果相同,耗时<font color="red">40.196秒</font>:

在这里插入图片描述

  1. 最后来看下资源使用状况,Cube构建过程当中,18G内存被使用:

在这里插入图片描述
至此,CDH+Kylin从部署到体验就已完成,《CDH+Kylin三部曲》系列也结束了,若是您正在学习Kylin,但愿本文可以给您一些参考。服务器

欢迎关注公众号:程序员欣宸

微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...
https://github.com/zq2599/blog_demos
相关文章
相关标签/搜索