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是关键字,需要使用双引号。

分布式大数据多维数据分析(olap)引擎kylin[转]的更多相关文章

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

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

  2. 漫谈ELK在大数据运维中的应用

    漫谈ELK在大数据运维中的应用 圈子里关于大数据.云计算相关文章和讨论是越来越多,愈演愈烈.行业内企业也争前恐后,群雄逐鹿.而在大数据时代的运维挑站问题也就日渐突出,任重而道远了.众所周知,大数据平台 ...

  3. MapGis如何实现WebGIS分布式大数据存储的

    作为解决方案厂商,MapGis是如何实现分布式大数据存储的呢? MapGIS在传统关系型空间数据库引擎MapGIS SDE的基础之上,针对地理大数据的特点,构建了MapGIS DataStore分布式 ...

  4. 大数据运维尖刀班 | 集群_监控_CDH_Docker_K8S_两项目_腾讯云服务器

    说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课:https://url.cn/5HIqOOr,主要是实战强.含金 ...

  5. 王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第十一讲Hadoop图文训练课程:MapReduce的原理机制和流程图剖析

    这一讲我们主要剖析MapReduce的原理机制和流程. “云计算分布式大数据Hadoop实战高手之路”之完整发布目录 云计算分布式大数据实战技术Hadoop交流群:312494188,每天都会在群中发 ...

  6. 云计算分布式大数据Hadoop实战高手之路第七讲Hadoop图文训练课程:通过HDFS的心跳来测试replication具体的工作机制和流程

    这一讲主要深入使用HDFS命令行工具操作Hadoop分布式集群,主要是通过实验的配置hdfs-site.xml文件的心跳来测试replication具体的工作和流程. 通过HDFS的心跳来测试repl ...

  7. 王家林的81门一站式云计算分布式大数据&移动互联网解决方案课程第14门课程:Android软硬整合设计与框架揭秘: HAL&Framework &Native Service &App&HTML5架构设计与实战开发

    掌握Android从底层开发到框架整合技术到上层App开发及HTML5的全部技术: 一次彻底的Android架构.思想和实战技术的洗礼: 彻底掌握Andorid HAL.Android Runtime ...

  8. 一站式Hadoop&Spark云计算分布式大数据和Android&HTML5移动互联网解决方案课程(Hadoop、Spark、Android、HTML5)V2的第一门课程

    Hadoop是云计算的事实标准软件框架,是云计算理念.机制和商业化的具体实现,是整个云计算技术学习中公认的核心和最具有价值内容. 如何从企业级开发实战的角度开始,在实际企业级动手操作中深入浅出并循序渐 ...

  9. 云计算分布式大数据Hadoop实战高手之路第八讲Hadoop图文训练课程:Hadoop文件系统的操作实战

    本讲通过实验的方式讲解Hadoop文件系统的操作. “云计算分布式大数据Hadoop实战高手之路”之完整发布目录 云计算分布式大数据实战技术Hadoop交流群:312494188,每天都会在群中发布云 ...

随机推荐

  1. Spring cloud info信息显示

    父工程添加配置如下 <build> <finalName>microservicecloud</finalName> <resources> <r ...

  2. android的体系结构

    android 体系结构:采用软件堆层的架构 ,四层1应用程序“: 提供一系列的核心应用程序 2应用程序框架 :提供安卓平台基本的管理功能和组件重用机制activityManager 管理应用程序的生 ...

  3. APP-9.1-百度应用-文字识别

    1.创建应用-文字识别 https://console.bce.baidu.com/ai/#/ai/ocr/app/list 尽量勾选:文字识别.百度语音.图像设别.人脸识别.图像搜索 2.获取Acc ...

  4. python字符串查找

    a = "string test" a.index("g") a.find("g")

  5. Nginx ssl证书部署方法

    查看当前安装的OpenSSL版本所支持的密码列表,可以使用下列命令:openssl ciphers 苹果ATS检测:https://www.qcloud.com/product/ssl 刚开始&quo ...

  6. 通过AI自学习,Google让Pixel 3的人像模式更优秀

    通过AI自学习,Google让Pixel 3的人像模式更优秀 Link: https://news.cnblogs.com/n/613720/ 虽然双摄手机已经在市场上普及,其所带来的人像模式.多倍变 ...

  7. /WebRoot/WEB-INF/web.xml

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...

  8. java fastJson

    // 大区的数据 String cityList = "[{'title':'华北','value':'1','children':[{'title':'山东','value':'1.1', ...

  9. python list [:1]

    python 切片slice 1.补充: A = np.ones([, , ]) B = np.ones([, ]) C = A*B[:, None, :] C.shape = 2,1,4 https ...

  10. linux安装mysql5.1

    一.卸载mysql 1.检测系统是否已经安装过mysql或其依赖,若已装过要先将其删除 # yum list installed | grep mysql mysql-libs.i686        ...