Apache Kylin是一个开源的分散式分析引擎,提供Hadoop之上的SQL查询界面及分析(OLAP)能力(可以把Kylin定义为OLAP on Hadoop)。Apache Kylin于2015年11月正式毕业成为Apache基金会(ASF) 专案,是第一个由中国团队完整贡献到Apache的专案。
Apache Kyiln构建在Hadoop等分散式计算平台之上,充分利用了MapReduce的并行处理能力和可扩充套件基础设施,高效地处理超大规模资料,可根据资料的规模实现架构的可伸缩。Apache Kylin作为OLAP引擎包含了从资料来源(Hive/Kafka等)获取源资料,基于MapReduce构建立方体(Cube),并充分利用HBase的列式特性来分散式的储存立方体资料,提供标准SQL解析与查询优化,以及ODBC/JDBC驱动及REST API等多个模组。可插拔的灵活架构,允许支援更多的资料来源接入Kylin,也支援采用技术作为储存引擎。
大多数的Hadoop分析工具和SQL是友好的,所以Apache Kylin拥有SQL界面这一点就显得尤为重要。Kylin用的SQL解析器是开源的Apache Calcite,支援几乎所有的SQL标准。Hive用的也是Calcite。
Kylin和SQL ON Hadoop的主要区别是预计算(离线计算)。使用者在使用之前先选择一个Hive Table的集合,然后在这个基础上做一个离线的Cube构建,Cube构建完了之后就可以做SQL查询了。
用离线计算来代替线上计算,在离线过程当中把复杂的、计算量很大的工作做完,线上计算量就会变小,就可以更快的返回查询结果。通过这种方式,Kylin可以有更少的计算量,更高的吞吐量。
由于superset元件中需要和kylin进行互动,所以需要搭建kylin+cdh的开发环境。
可以从官方网站下载apache-kylin-2.0.0-bin-cdh57.tar.gz对应的元件,也可以从本书提供的套件里获取。
解压缩:
输入命令:sudo tar -zxvf apache-kylin-2.0.0-bin-cdh57.tar.gz -C /opt/
修改许可权:
输入命令:sudo chown -R hdfs:hdfs /opt/apache-kylin-2.0.0-bin/
软连结:
输入命令:sudo ln -s /opt/apache-kylin-2.0.0-bin/ /opt/kylin
配置环境变数:
输入命令:vi ~/.bashrc
会看到如下效果(实际的情况看本机而定):
# User specific aliases and functions
alias rm=rm -i
alias cp=cp -i
alias mv=mv -i
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
#added by HBase
export HBASE_HOME=/opt/cloudera/parcels/CDH/lib/hbase
export PATH=$HBASE_HOME/bin:$PATH
#added by HCat
export HCAT_HOME=/opt/cloudera/parcels/CDH/lib/hive-hcatalog
#added by spark
export SPARK_HOME=/opt/apache-kylin-2.1.0-bin-cdh57/spark
#added by kafka
export KAFKA_HOME=/opt/cloudera/parcels/KAFKA-2.2.0-1.2.2.0.p0.68/lib/kafka
# added for Kylin
export KYLIN_HOME=/opt/kylin
#added by java
export JAVA_HOME=/usr/java/jdk1.8.0_144
新增红色部分到环境。
重新整理:
输入命令:source ~/.bashrc
启动kylin:
输入命令:./kylin.sh start
会显示如下结果:
Retrieving hadoop conf dir...
KYLIN_HOME is set to /opt/kylin
Retrieving hive dependency...
Retrieving hbase dependency...
Retrieving hadoop conf dir...
Retrieving kafka dependency...
Retrieving Spark dependency...
KYLIN_JVM_SETTINGS is -Xms1024M -Xmx4096M -Xss1024K -XX:MaxPermSize=128M -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/kylin/logs/kylin.gc.31483 -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=64M
A new Kylin instance is started by hadoop. To stop it, run kylin.sh stop
Check the log at /opt/kylin/logs/kylin.log
Web UI is at http://:7070/kylin
访问UI:
输入命令:http://node10:7070/kylin/login
会看到如下效果。
汇入官方提示用例:
输入命令:./sample.sh
重启服务即可看到示例。