本地搭建Kylin运行环境实践

Apache Kylin是运行在Hadoop集群之上的OLAP数据分析应用服务,在Hadoop生态中,大家对它的认可度和赞誉都很高,全球有超过1000+企业都在使用“麒麟”(Apache Kylin)这只神兽。而Hadoop集群的部署又并非易事,那这是否就阻碍了我们探究Apache Kylin的步伐呢?答案是否定的,通过借助强大的虚拟技术,在自己本地就能体验到“麒麟”的魅力,那么接下来就让我们一起进入“麒麟”的数据世界。

Kylin大数据生态定位

部署前需要准备的材料有:

  • 一台8核,16G内存及以上配置的电脑
  • Oracle VirtualBox
  • Cloudera QuickStart VM
  • OracleJDK 1.8 / OpenJDK 8
  • Apache Kylin 2.6.1(CDH版本)

开启VT-x

Intel VT-x完整名称是Intel Virtualization Technology,就是Intel虚拟技术,开启它可以让硬件平台同时运行多个操作系统,是虚拟机软件运行必备的技术之一。如果禁用,会在使用虚拟软件时弹出“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”这个提示,解决办法就是进BIOS开启Intel Virtualization Technology选项,保存后重启电脑即可。

开启VT-x虚拟技术

注:不同类型的主板选项会有差异,可自行 Google 搜索下。

安装虚拟机

在此介绍的是Oracle旗下一款开源免费虚拟机软件,大家可到其官方网站: http://www.virtualbox.org 进行下载,关于其的安装与使用可自行Google搜索学习,其实也非常的简单其乎就是“傻瓜式”的操作。顺便提下,Oracle 的VirtualBox天生就是支持中文的哟。

导入CDH虚机镜像

通过对比几款不同的Hadoop虚拟集成环境后,最终选择了 Cloudera 提供的 QuickStart VM 镜像。此VM提供了最小可用环境,并非再一次通过Docker虚拟化出来的,这样便减少了不必要的资源开销,操作性上也是更贴合Linux原生体验。大家可访问其官方下载渠道 quickstart_vms_5-13 获取最新的版本,注意选择对应的虚拟机支持类型。

注:QuickStart VM 所涉及到的账户与密码默认都是 cloudera。

导入QuickStart VM

打开 Oracle VirtualBox 软件后在其主界面上点击左上方的管理菜单,找到导入虚拟电脑选项(或是使用 Ctrl+I 快捷组合键),点击进入并选取准备好的 QuickStart VM 文件,点击下一步配置虚拟电脑的资源。可根据实际情况分配资源,建议使用4核,8G内存及以上配置。同时为方便管理可自定义虚拟电脑的名称,如上图所示。最后点击导入按钮,导入过程大约10分钟左右,具体视机器资源而定。

配置环境

启动虚拟电脑之前还需要修改一下网络配置,默认为NAT网络类型,无法与本地宿主机进行通讯,建议改用桥接网络类型(此连接模式有个缺点,即宿主机断网后便无法虚拟电脑进行通讯)。至此虚拟电脑的所有配置就准备就绪,点击Oracle VitrualBox主界面上的快捷启动按钮启动虚拟电脑,启动过程大约等待4~6分钟,然后便可进入熟悉的Linux系统桌面,如下图所示。系统默认已经启动所有Hadoop生态服务,但不包括CM组件,如无特殊也不建议开启,因为需要更多的资源。

quick-start-VM-Desktop

考虑本地机器的资源有限,因此只需要开启Apache Kylin运行的基础服务,如HDFS,HBase,Hive,ZooKeeper等相关的服务。打开终端并切换到root用户下,执行如下的命令关闭开机自启动服务,最后重新启动虚拟电脑。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[root@quickstart ~]# chkconfig flume-ng-agent off
[root@quickstart ~]# chkconfig hadoop-yarn-proxyserver off
[root@quickstart ~]# chkconfig hue off
[root@quickstart ~]# chkconfig htcacheclean off
[root@quickstart ~]# chkconfig impala-catalog off
[root@quickstart ~]# chkconfig impala-state-store off
[root@quickstart ~]# chkconfig oozie off
[root@quickstart ~]# chkconfig solr-server off
[root@quickstart ~]# chkconfig spark-history-server off
[root@quickstart ~]# chkconfig sqoop-metastore off
[root@quickstart ~]# chkconfig sqoop2-server off
[root@quickstart ~]# chkconfig spark-history-server off

部署Kylin

建议使用非root用户来运行Apache Kylin应用服务,因此需要创建个新的Linux系统用户,比如:kylin。另外从Apache Kylin 2.5+版本开始需要JDK 1.8+的运行环境支持,通过SSH客户端工具把准备好的Oracle JDK1.8/OpenJDK 8Apache Kylin 2.6.1的安装包上传到虚拟机环境中,并在当前kylin用户下配置JAVA的运行环境。

同时需要对HBase的JAVA_HOME变量做相应的调整,切换到root用户执行如下的命令,最后重新启动HBase相关的服务。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[root@quickstart ~]# vi /usr/lib/hbase/conf/hbase-env.sh
# The java implementation to use.  Java 1.7+ required.
export JAVA_HOME=/usr/lib/java/jdk1.8.0_201
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false

[root@quickstart ~]# service hbase-master restart
[root@quickstart ~]# service hbase-regionserver restart
[root@quickstart ~]# service hbase-rest restart
[root@quickstart ~]# service hbase-thrift restart

然后解压Apache Kylin安装压缩包到自定义的目录下,参考官方的安装步骤 ylin-installation 进行相关配置。由于Cloudera QuickStart VM 提供的CDH 5.13版本中使用的是 JDK1.7版本,所以需要对${KYLIN_HOME}/conf目录下的kylin_job_conf.xmlkylin_job_conf_inmem.xml文件中增加如下的配置:

1
2
3
4
5
6
7
8
9
<property>
  <name>mapred.child.env</name>
  <value>JAVA_HOME=/usr/lib/java/jdk1.8.0_201</value>
</property>

<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>JAVA_HOME=/usr/lib/java/jdk1.8.0_201</value>
</property>

最后执行check-env.sh进行环境检测无误后,使用sample.sh脚本导入自带的示例数据,导入成功后再切换到${KYLIN_HOME}/bin目录下调用kylin.sh start命令启动。打开本地浏览器在地址栏输入:http://虚拟电脑IP:7070/kylin 进行访问,根据Apache Kylin官方网站的操作步骤进行相应Cube构建: kylin_sample 。构建完成好后,可使用官方提供SQL进行测验对比,如下2张图所示,1条普通的带去重和排序汇总SQL查询,Kylin仅花费了0.13s的时间,而Hive却耗费43s的时间,查询性能明显提升数十倍以上。

Hive Query Speed Kylin Query Speed

怎么样!看到Apache Kylin如此之快的“神”速,是否也按捺不住想试一把,那就赶紧行动起来。下一次还会带来Kylin与Zeppelin整合做数据分析报告的精彩分享,欢迎持续关注。