CDH+Kylin三部曲之三:Kylin官方demo
欢迎访问我的GitHub
https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
本文是《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查询:
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;
- Kylin查询耗时0.13秒:
- Hive查询,结果相同,耗时40.196秒:
- 最后来看下资源使用情况,Cube构建过程中,18G内存被使用:
至此,CDH+Kylin从部署到体验就已完成,《CDH+Kylin三部曲》系列也结束了,如果您正在学习Kylin,希望本文能够给您一些参考。
欢迎关注公众号:程序员欣宸
微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...
https://github.com/zq2599/blog_demos
CDH+Kylin三部曲之三:Kylin官方demo的更多相关文章
- CDH+Kylin三部曲之一:准备工作
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- CDH+Kylin三部曲之二:部署和设置
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Docker搭建disconf环境,三部曲之三:细说搭建过程
Docker下的disconf实战全文链接 <Docker搭建disconf环境,三部曲之一:极速搭建disconf>: <Docker搭建disconf环境,三部曲之二:本地快速构 ...
- Docker下实战zabbix三部曲之三:自定义监控项
通过上一章<Docker下实战zabbix三部曲之二:监控其他机器>的实战,我们了解了对机器的监控是通过在机器上安装zabbix agent来完成的,zabbix agent连接上zabb ...
- CDH5部署三部曲之三:问题总结
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Flink on Yarn三部曲之三:提交Flink任务
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Flink的DataSource三部曲之三:自定义
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 订餐系统之微信支付,踩了官方demo的坑
最近一个项目要增加微信支付的功能,想来这个东西出来这么久了,按微信提供的应该可以很快搞定的,结果提供的demo( JS API网页支付)中各种坑,咨询他们的客服,态度倒是非常好,就是解决不了问 ...
- Dubbo系列(3)_官方Demo说明
一.本文目的 通过Dubbo的官方Demo介绍,学会搭建一个简单的Dubbo程序,包括服务端.客户端.接口等. Demo地址:https://github.com/alibaba/dubbo/ ...
随机推荐
- hystrix元素详解
转自https://www.cnblogs.com/wanggangblog/p/8550218.html package com.example.demo.service; import org.s ...
- PHP代码审计学习(1)
全局变量与超全局变量 $GLOBALS $GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问,$GLOBALS 是一个包含了全部变量的全局组合数组.变量的名字就是数 ...
- Oracle12c 使用总结
/*创建临时表空间 */create temporary tablespace BBB tempfile 'D:\APP\oracle\oradata\orcl\BBB.dbf' size 500m ...
- java调用Oracle中的存储过程与存储函数
1 //调用存储过程 2 public static void testPro(){ 3 String driver = "oracle.jdbc.OracleDriver"; 4 ...
- Solon详解(九)- 渲染控制之定制统一的接口输出
Solon详解系列文章: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播机制 ...
- 提升GAN的技术 Tips for Improving GAN
Wasserstein GAN (WGAN) 在一些情况下,用 JS散度来衡量两个分布的远近并不适合: 1. 数据是高维空间中的低维流形(manifold),两个分布在高维空间中的 overlap 少 ...
- mysql5.7开启慢查询日志
环境:centos7 mysql版本:5.7.28 一.什么是慢查询 MySQL默认10s内没有响应SQL结果,则为慢查询 当然我们也可以修改这个默认时间 查看慢查询的时间 show variable ...
- K8S环境的Jenkin性能问题处理续篇(任务Pod设置)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos K8S环境的Jenkin性能问题处理 本文是<K ...
- c语言gets函数
函数gets的原型为:char*gets(char*buffer); 在 stdio.h中定义,如果要程序中用到此函数需包含#include<stdio.h> gets()函数用来从标准输 ...
- 应用启动失败,报错:The server experienced an unexpected error when processing the request
前言 在腾讯云TKE集群中部署服务的时候,预警服务,warn一直重启,经过查询日志发现了如下的错误 The server experienced an unexpected error when pr ...