您的位置:首页 > 运维架构 > Apache

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

2016-11-22 18:54 441 查看
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
##HBASE
export HBASE_HOME=/opt/hbase-0.98.6-cdh5.2.0
export HBASE_CONF_DIR=/etc/hbase/conf
 
##HADOOP
export HADOOP_HOME=/opt/hadoop-2.3.0-cdh5.0.0
export HADOOP_CONF_DIR=/etc/hadoop/conf
export YARN_CONF_DIR=/etc/hadoop/conf
 
##HIVE
export HIVE_HOME=/home/liuxiaowen/apache-hive-2.0.0-bin
export HCAT_HOME=$HIVE_HOME/hcatalog
export HIVE_CONF=$HIVE_HOME/conf
 
##KYLIN
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引起的:
Caused by: java.lang.IncompatibleClassChangeError:
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
java.lang.NoClassDefFoundError: org/apache/hadoop/hive/shims/Utils


Kylin的简单示例

Kylin中多维分析Cube的建立主要包括以下步骤:
Hive中分析好事实表;
Kylin中建立项目(project);
Kylin中建立数据源;
Kylin中建立数据模型;
Kylin中建立Cube;
Build Cube;
查询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是关键字,需要使用双引号。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐