1. 基于Kylin的预警分析
1.1. Kylin简介
Kylin的诞生背景
1.Kylin 是一款大数据OLAP引擎,由ebay-中国团队研发的,是第一个真正由中国人自己主导、从零开始、自主研发、并成为Apache顶级开源项目
2.Hive的性能比较慢,支持SQL灵活查询
3.HBase的性能快,原生不支持SQL
4.Kylin是将先将数据进行预处理,将预处理的结果放在HBase中。效率很高
1.2. 为什么要使用Kylin
Kylin 是一个 Hadoop 生态圈下的 MOLAP 系统,是 ebay 大数据部门从2014 年开始研发的支持 TB 到 PB 级别数据量的分布式 Olap 分析引擎。其特点包括:
1.可扩展的超快的 OLAP 引擎
2.提供 ANSI-SQL 接口
3.交互式查询能力
4.MOLAP Cube 的概念(立方体)
5.与 BI 工具可无缝整合
1.3. Kylin的应用场景
Kylin 典型的应用场景如下:
1.用户数据存在于Hadoop HDFS中,利用Hive将HDFS文件数据以关系数据方式存取,数据量巨大,在500G以上
2.每天有数G甚至数十G的数据增量导入
3.有10个以内较为固定的分析维度
Kylin 的核心思想是利用空间换时间,在数据 ETL 导入 OLAP 引擎时提前计算各维度的聚合结果并持久化保存
1.4. Kylin的总体架构
Kylin 依赖于 Hadoop、Hive、Zookeeper 和 Hbase
2. Kylin启动
2.1. 启动集群
1、启动zookeeper
(1) zkServer.sh start
2、启动HDFS
(1) start-all.sh
3、启动YARN集群
4、启动HBase集群
start-hbase.sh
5、启动 metastore
nohup hive --service metastore &
6、启动 hiverserver2
nohup hive --service hiveserver2 &
7、启动Yarn history server
mr-jobhistory-daemon.sh start historyserver
8、启动spark history server【可选】
sbin/start-history-server.sh
9、启动kylin
./kylin.sh start
10、登录Kylin
http://node01:7070/kylin
url |
|
默认用户名 |
ADMIN |
默认密码 |
KYLIN |
用户名和密码都必须是大写
3. Kylin实战 - 使用Kylin进行OLAP分析
3.1. 测试数据表结构介绍
1、(事实表)dw_sales
列名 |
列类型 |
说明 |
id |
string |
订单id |
date1 |
string |
订单日期 |
channelid |
string |
订单渠道(商场、京东、天猫) |
productid |
string |
产品id |
regionid |
string |
区域名称 |
amount |
int |
商品下单数量 |
price |
double |
商品金额 |
2、(维度表_渠道方式)dim_channel
列名 | 列类型 | 说明 |
channelid | string | 渠道id |
channelname | string | 渠道名称 |
3、(维度表_产品名称)dim_product
列名 | 列类型 | 说明 |
productid | string | 产品id |
productname | string | 产品名称 |
4、(维度表_区域)dim_region
列名 | 类类型 | 说明 |
regionid | string | 区域id |
regionname | string | 区域名称 |
3.2. 导入测试数据
为了方便后续学习Kylin的使用,需要准备一些测试表、测试数据。
1.Hive中创建表
2.将数据从本地文件导入到Hive
操作步骤
1、使用 beeline 连接Hive
!connect jdbc:hive2://node01:10000
2、创建并切换到 itcast_dw 数据库
create database itcast_dw;use itcast_dw;
3、创建测试数据文件夹,并将测试数据文件上传到该文件夹中
mkdir -p /export/servers/tmp/kylin
将“4.资料> 02.Kylin> 4.kylin_实战_hive_建表语句> 数据文件”中的数据上传至此目录
4、找到资料中的“4.资料> Kylin> 4.kylin_实战_hive_建表语句> hive.sql”文件,执行sql、创建测试表,并导入数据到表中
– 查看表是否创建成功show tables;
5、执行一条SQL语句,确认数据是否已经成功导入
select from dw_sales;
3.3. 按照日期统计订单总额/总数量(Hive方式)
操作步骤:
1、使用beeline连接Hive
2、切换到itcast_dw数据库
3、编写SQL语句
操作步骤:
1、使用beeline连接Hive
2、切换到itcast_dw数据库
use itcast_dw;
2、在代码目录中创建sql文件,编写SQL语句
select date1, sum(price) as total_money, sum(amount) as total_amount from dw_sales group by date1;