如何在CDH中部署及使用Kylin

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

Fayson的github:https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1.文档编写目的


Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

具体功能如下:

1.可扩展超快OLAP引擎:

- Kylin是为减少在Hadoop/Spark上百亿规模数据查询延迟而设计

2.Hadoop ANSI SQL 接口:

- Kylin为Hadoop提供标准SQL支持大部分查询功能

3.交互式查询能力:

- 通过Kylin,用户可以与Hadoop数据进行亚秒级交互,在同样的数据集上提供比Hive更好的性能

4.多维立方体(MOLAP Cube):

- 用户能够在Kylin里为百亿以上数据集定义数据模型并构建立方体

5.与BI工具无缝整合:

- Kylin提供与BI工具的整合能力,如Tableau,PowerBI/Excel,MSTR,QlikSense,Hue和SuperSet

6.其他特性:

- Job管理与监控

- 压缩与编码

- 增量更新

- 利用HBase Coprocessor

- 基于HyperLogLog的Dinstinc Count近似算法

- 友好的web界面以管理,监控和使用立方体

- 项目及表级别的访问控制安全

- 支持LDAP、SSO

以上内容来自Kylin的Apache社区官网,具体参考:http://kylin.apache.org/cn/,本文主要描述如何在CDH集群中部署及使用Kylin。

  • 内容概述

1.下载Kylin

2.部署Kylin

3.Demo1

4.Demo2

测试环境

1.RedHat7.4

2.CM/CDH5.13.3

3.Apache Kylin2.1.0

4.集群未启用Kerberos

  • 前置条件

1.CDH集群正常运行

2.Hive,HBase服务运行正常

3.安装Kylin服务的节点已经部署Hive Gateway

2.下载Kylin


社区版kylin下载地址:https://archive.apache.org/dist/kylin/ ,本次测试使用apache-kylin-2.1.0

3.部署Kylin


这里测试只部署了一个节点,实际生产可以部署多个节点,kylin是无状态的,前端做负载均衡。

1.上传kylin包至服务器

2.解压至/usr/local目录,并建软链接

[root@hadoop3 ~]# tar -zxvf apache-kylin-2.1.0-bin-cdh57.tar.gz -C /usr/local/
[root@hadoop3 ~]# cd /usr/local/
[root@hadoop3 local]# ln -s apache-kylin-2.1.0-bin-cdh57/ kylin

(可左右滑动)

3.Kylin环境配置

主要配置kylin的home目录及java环境变量,配置如下:

[root@hadoop3 kylin]# vim ~/.bashrc 
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export KYLIN_HOME=/usr/local/kylin
export PATH=$JAVA_HOME/bin:$PATH
[root@hadoop3 kylin]# source ~/.bashrc 

(可左右滑动)

4.执行bin/check-env.sh检查kylin运行环境

5.启动kylin服务,执行bin/kylin.sh start命令

6.访问kylin的web UI,这里的地址是http://192.168.0.198:7070/kylin,默认账号密码为:ADMIN/KYLIN

4.Demo1:Kylin自带


1.Kylin本身自带了一个测试例子,创建流程如下:

执行sample.sh脚本,这个主要是创建kylin的project、model、cube以及相关的hive表等。

查看Hive default库中的表,多了五张表

2.进入kylin Web界面reload metadata

3.查看导入模型

4.构建cube

5.选择数据分区范围

6.点击monitor,查看正在构建cube的作业

这一步会比较耗时,因为这步会进行预计算,默认是MapReduce作业。

7.查询构建完成的cube

先运行简单的count,可以看到耗时2.14s,再次执行基本在豪秒级,因为kylin支持缓存功能

select count(*) from KYLIN_SALES

(可左右滑动)

执行多表关联查询

select sum(KYLIN_SALES.PRICE) 
as price_sum,KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME 
from KYLIN_SALES inner join KYLIN_CATEGORY_GROUPINGS
on KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID and 
KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID
group by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
order by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME asc,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME desc

(可左右滑动)

耗时1.89s,查询支持多种展示方式,如:Line chart、bar chart、pie chart,可以点击Visualization查看可视化展示方式,并且可以选择不同的维度和度量字段。

5.Demo2


1.数据准备

下载地址:

https://github.com/fayson/cdhproject/tree/master/kylindemo

2.执行建表语句,执行以下命令

hdfs dfs -put employee.csv /tmp/data/kylin/
hdfs dfs -put employee.csv /tmp/data/kylin/
beeline -u "jdbc:hive2://hadoop2.macro.com:10000/default" -n hive -f create_table.sql

(可左右滑动)

3.创建project

4.加载Hive表

5.创建model,入project的名称和描述:

6.选择事实表,并点击add Lookup Table查询表

7.选择维度字段

8.选择度量字段:

9.如果有分区选择分区表和列

10.model创建完成

11.创建cube

12.选择model

13.选择维度,这里把model中设置的维度都勾选上

14.选择度量指标,可以添加,比如sum、Max等

15.默认,下一步

16.默认,下一步

17.cube创建完成

18.构建cube

19.查看构建cube的job,进入monitor

20.查询

先执行简单查询,

查询语句:

select count(*) from EMPLOYEE和select max(salary) from EMPLOYEE

(可左右滑动)

可以看到耗时分别在0.19s和0.11秒

21.统计各部门员工薪资总和,执行以下语句

select d.ID,sum(e.SALARY) as salary from EMPLOYEE as e left join DEPARTMENT as d on e.DEPTID=d.id group by d.ID order by salary desc

(可左右滑动)

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2018-05-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

Cloudera Navigator异常分析

在Cloudera Manager的管理界面查看Navigator服务正常,无任何告警

519100
来自专栏个人分享

Spark参数配置说明

1  修改$SPARK_HOME/conf目录下的spark-defaults.conf文件

44050
来自专栏24K纯开源

Mac OS X平台下QuickLook开发教程

一、引言       Quick Look技术是Apple在Mac OS X 10.5中引入的一种用于快速查看文件内容的技术。用户只需要选中文件单击空格键即可快...

32380
来自专栏blackpiglet

在 Kubernetes中,fluentd 以 sidecar 模式收集日志,并发送至 ElasticSearch

ElasticSearch 在日志收集和分析领域非常流行,而 fluentd 是一种万用型的日志收集器,当然也支持 ES(ElasticSearch)。不过在 ...

21720
来自专栏安恒网络空间安全讲武堂

赛前福利①最新2018HITB国际赛writeup

FIRST 距离“西湖论剑杯”全国大学生网络空间安全技能大赛只有10天啦! 要拿大奖、赢offer,那必须得来点赛前练习定定心啊~这不,讲武堂就拿到了2018H...

48550
来自专栏移动端开发

iOS 测试三方 KIF 的那些事

一: KIF 三方库的配置       今天的广州天气还不错,原本想试试UI测试的,前几天也了解到很多公司都在用 KIF 这这三方框架!!今天也就试着做做,可就...

24760
来自专栏Python、Flask、Django

Python 实现一个简单的上下文管理器

15840
来自专栏about云

spark1.x升级spark2如何升级及需要考虑的问题

问题导读 1.spark2升级哪些内容变化? 2.升级中spark哪些没有发生变化? 3.cloudera中,spark1和spark2能否并存? 4.升级后...

1.3K40
来自专栏程序员的SOD蜜

PDF.NET SOD 开源框架红包派送活动 && 新手快速入门指引

一、框架的由来  快速入门 有关框架的更多信息,请看框架官方主页! 本套框架的思想是借鉴Java平台的Hibernate 和 iBatis 而来,兼有...

32290
来自专栏JetpropelledSnake

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别

本篇文章将重点分析SNMP报文,并对不同版本(SNMPv1、v2c、v3)进行区别!

45410

扫码关注云+社区

领取腾讯云代金券