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/bashrcfi
#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/ka
fka
# 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://
访问UI:
输入命令:http://node10:7070/kylin/login
导入官方提示用例:
输入命令:./sample.sh
重启服务即可看到示例。