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

Kylin OLAP引擎基础框架,包括元数据(Metadata)引擎,查询引擎,Job引擎及存储引擎等,同时包括REST服务器以响应客户端请求;

支持额外功能和特性的插件;

与调度系统,ETL,监控等生命周期管理系统的整合;

在Kylin核心之上扩展的第三方用户界面;

官网地址:http://kylin.apache.org/

提供了主要功能及使用的中文文档。

Kylin的架构特性


可扩展的超快OLAP引擎,提供标准SQL查询接口

支持单机或集群部署,为减少在Hadoop上百亿规模数据查询延迟而设计;

提供标准SQL接口,满足Hadoop之上的大部分分析查询需求。

交互式查询能力,多维立方体(MOLAP Cube)

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

与BI工具及其他应用整合

提供JDBC及ODBC驱动,与BI工具整合。

其他特性

压缩与编码;

增量更新;

利用HBase Coprocessor;

基于HyperLogLog的Dinstinc Count近似算法;

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

项目及立方体级别的访问控制安全;

支持LDAP;

Kylin的安装部署


下载地址:http://kylin.apache.org/download/

apache-kylin-1.5.1-bin.tar.gz

解压至:/home/liuxiaowen/kylin

安装部署环境

我这里使用的相关版本为:

hbase-0.98.6-cdh5.2.0

hadoop-2.3.0-cdh5.0.0

apache-hive-2.0.0-bin

apache-kylin-1.5.1-bin

jdk1.7+

特别注意:Hive应该使用至少0.14以上的版本,我第一次使用0.13.1时候有问题。

另外,请确保Hadoop、HBase、Hive可用,这里不介绍。

配置环境变量

部署使用的用户为liuxiaowen

vi ~/.bash_profile

  1. ##HBASE
  2. export HBASE_HOME=/opt/hbase-0.98.6-cdh5.2.0
  3. export HBASE_CONF_DIR=/etc/hbase/conf
  4. ##HADOOP
  5. export HADOOP_HOME=/opt/hadoop-2.3.0-cdh5.0.0
  6. export HADOOP_CONF_DIR=/etc/hadoop/conf
  7. export YARN_CONF_DIR=/etc/hadoop/conf
  8. ##HIVE
  9. export HIVE_HOME=/home/liuxiaowen/apache-hive-2.0.0-bin
  10. export HCAT_HOME=$HIVE_HOME/hcatalog
  11. export HIVE_CONF=$HIVE_HOME/conf
  12. ##KYLIN
  13. export KYLIN_HOME=/home/liuxiaowen/kylin/apache-kylin-1.5.1-bin

刷新环境变量:

source ~/.bash_profile


配置Kylin使用的Hive数据库:

cd $KYLIN_HOME/conf

vi kylin.properties

# Hive database name for putting the intermediate flat tables

## 这里配置在Hive中使用的schema,需要写权限

kylin.job.hive.database.for.intermediatetable=liuxiaowen


使用HDFS超级用户在HDFS上为Kylin创建工作目录,并赋权给liuxiaowen:

hadoop fs -mkdir /kylin

hadoop fs -chown -R liuxiaowen:liuxiaowen /kylin


## 可选,配置Kylin使用的内存

$KYLIN_HOME/bin/setenv.sh

检查环境配置

cd $KYLIN_HOME/bin

./check-env.sh

启动Kylin

cd $KYLIN_HOME/bin

./kylin.sh start

登陆Kylin WEB界面

浏览器输入:

http://172.16.212.17:7070/kylin

用户名密码:ADMIN/KYLIN

遇到的几个问题


都是因为使用了Hive0.13.1引起的:

  1. Caused by: java.lang.IncompatibleClassChangeError:
  2. Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected

hcatalog版本问题,后改为Hive2.0中的hcatalog

export HCAT_HOME=/home/liuxiaowen/apache-hive-2.0.0-bin/hcatalog

  1. java.lang.NoClassDefFoundError: org/apache/hadoop/hive/shims/Utils

Kylin的简单示例


Kylin中多维分析Cube的建立主要包括以下步骤:

  1. Hive中分析好事实表;
  2. Kylin中建立项目(project);
  3. Kylin中建立数据源;
  4. Kylin中建立数据模型;
  5. Kylin中建立Cube;
  6. Build Cube;
  7. 查询Cube;

Kylin按照上面的过程,最终将Hive中的事实表按照相应的结构,压缩并存储在HBase中。

官网提供了中文文档,说明了如何在Kylin中建立Cube,非常详细:

http://kylin.apache.org/cn/docs15/tutorial/create_cube.html

Hive中的事实表

事实表lxw1234_kylin_fact中的维度有day、region、city、siteid、os;最终查询的指标有两个:PV以及UV(COUNT DISTINCT cookieid)

Kylin中建立数据模型

1. 建立项目lxw1234;

2. 将Hive中的事实表 lxw1234_kylin_fact导入到Kylin数据源:

3. 建立数据模型lxw1234_dataModel:

选择维度数据:

选择指标数据:

其他设置:

数据模型中的日期分区字段貌似是必选的,否则会有问题。

然后保存。

Kylin中建立Cube

设计维度:

设计指标:

其中,UV使用的COUNT_DISTINCT是近似计算,需要选择错误率,错误率越低,占用的存储越大,Build耗时越长。

其他设置请参考上面给的中文文档链接,很详细。

设置好之后保存。

Kylin中Build Cube

在Cube后面的Actions下拉菜单中选择Build:

Submit之后,在Monitor页面中可以看到Build Job的进度和状态:

双击Job Name进入该Job的详细监控页:

Build完成后,在Model页面可以看到这个Cube已经是READY状态:

你可以在HBase中查看该Cube对应的HTable:

Kylin中使用SQL查询

在Insight页面中使用SQL查询:

注意:由于DAY是关键字,需要使用双引号。

转载于:https://www.cnblogs.com/qqflying/p/9266730.html

分布式大数据多维数据分析(olap)引擎kylin[转]相关推荐

  1. 分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例【转】

    Kylin 麒麟官网:http://kylin.apache.org/cn/download/ 关键字:olap.Kylin Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的 ...

  2. 分布式大数据多维分析引擎:Kylin 在百度地图的实践

    2019独角兽企业重金招聘Python工程师标准>>> 1. 前言 百度地图开放平台业务部数据智能组主要负责百度地图内部相关业务的大数据计算分析,处理日常百亿级规模数据,为不同业务提 ...

  3. 纠结做大数据开发?大数据运维?还是大数据分析?

    经常有同学在后台留言问我,自己觉得大数据行业薪资很高,想往大数据方向发展,但不知道该学哪些知识,应该具备的技能树是啥样的. 迷茫和焦虑都要溢出屏幕了--如果觉得薪资高就业好,想往大数据方向发展,也不是 ...

  4. 大数据开发、大数据分析、大数据运维主要工作各是什么?哪个好?

    本文转自https://blog.csdn.net/weixin_34318956/article/details/87302823 首先,工作本身没有好坏之分,只有门槛高低之别.大数据开发.大数据分 ...

  5. python大数据运维工程师待遇_大数据开发、运维、数据分析分别是干什么的?哪个薪资最高?...

    玩转大数据首先要明确自己将要学习的方向,没有人能一下子吃透大数据里面所有的东西. 在大数据的世界里面主要有三个学习方向,大数据开发师.大数据运维师.大数据架构师. 哪个好?我不知道你所说的哪个好?指的 ...

  6. 大数据开发、大数据分析、大数据运维主要工作各是什么?哪个好?谢谢?

    首先,工作本身没有好坏之分,只有门槛高低之别.大数据开发.大数据分析.大数据运维都围绕着大数据展开.如果我们把大数据去掉,就只剩下,开发,分析,运维.当然还有其它的工作,例如运营,产品,讲师,测试等. ...

  7. 大数据运维实战第一课 大话 Hadoop 生态圈

    你好,欢迎来到<大数据运维实战>专栏. 入行以来,我从事大数据运维也有十多年了,期间我做过系统运维.DBA,也做过大数据分析师,最后选择了大数据运维方向,曾设计并管理超过千台.PB 级的数 ...

  8. python大数据运维工程师待遇_大数据运维工程师的工作职责

    大数据需要负责公司产品的技术支持.安装调试.客户使用培训及相关硬件的安装调试.下面是学习啦小编为您精心整理的大数据运维工程师的工作职责. 大数据运维工程师的工作职责1 职责: 1.负责和参与公司大数据 ...

  9. PB级分布式大数据的处理和分析应用

    文章讲的是PB级分布式大数据的处理和分析应用,对于大数据,串行的处理方式难以满足人们的要求,现在主要采用并行计算方式.现有的并行计算可以分为两种: ·细粒度的并行计算.这里细粒度主要是指指令或进程级别 ...

最新文章

  1. php 正则 菜鸟,PHP正则表达式基础入门
  2. python3(十四)Python 异常处理
  3. 换到GitHub 博客了
  4. Expression.Blend.4 Chapter 图片和视频的使用
  5. 实现远程访问局域网内的多台电脑
  6. 基于DOS的ipc$最详攻略。
  7. JZOJ5787轨道(容斥+DP)
  8. Eclipse手动添加dtd文件使xml能自动提示
  9. eclipse使用配置教程
  10. 集成电路产业的芯片设计、芯片制造、封装测试
  11. 什么是互联网产品运营
  12. [组合计数] BZOJ 3505 [Cqoi2014]数三角形
  13. 网站服务器迁移域名怎么配置文件,记录网站服务器搬家如何迁移 Let’s Encrypt 证书 | 老左笔记...
  14. 【动态规划】钢条切割问题
  15. go 家庭收支记账软件
  16. linux(debian 11)下安装nginx
  17. 计算机仿真初审多长时间,普刊初审时间多久有回复
  18. 三个点在同一个半圆的概率_圆内任取三点/四点在同一半圆内的概率是多少?...
  19. centos7无盘启动_从无盘启动看Linux启动原理
  20. 沙箱环境--虚拟环境

热门文章

  1. Swift 5新特性详解:ABI 稳定终于来了!
  2. leetcode 870.优势洗牌
  3. 数字信号处理6:IIR滤波器设计
  4. imu相机标定_解放双手——相机与IMU外参的在线标定
  5. python里边的单词都表示什么_Python:只保留字符串中的单词,每个单词都在newlin上...
  6. java客户端查询hive很慢_Hive面试,如何优化查询效率!
  7. 将python程序打包成可执行文件exe
  8. SpringBoot中使用Mybatis-plus整合PageHelper分页插件踩坑
  9. 枚举工具类 EnumUtils.java
  10. java创建 xml_java创建和读取xml