重磅:如何玩转kylin

时间:2022-04-25
本文章向大家介绍重磅:如何玩转kylin,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1, kylin是什么?为什么需要?

Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

两张图概括麒麟

二, Kylin安装的环境要求

1,hadoop的最低版本要求

最低的环境版本要求:

Hadoop: 2.7+

Hive: 0.13 - 1.2.1+

HBase: 0.98 - 0.99, 1.1+

JDK: 1.7+

浪尖的安装系列文章,满足,我们采用的hadoop版本是2.7.4,hive是1.2.1,hbase-1.2.0,jdk1.8

本文采用的kylin版本是apache-kylin-2.1.0-bin-hbase1x.tar.gz

2,/etc/profile

之所以单独强调这一点,是因为kylin安装的时候严格依赖于hadoop,spark,hive,hbase等环境变量配置。具体配置如下:

export JAVA_HOME=/opt/modules/jdk1.8.0_121
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/modules/hadoop-2.7.4/
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# Hive
export HIVE_HOME=/opt/modules/hive-1.2.1
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$PATH:$HIVE_HOME/bin
# HBase
export HBASE_HOME=/opt/modules/hbase-1.2.0
export HBASE_CONF_DIR=$HBASE_HOME/conf
export PATH=$PATH:$HBASE_HOME/bin
# zookeeper
export ZOOKEEPER_HOME=/opt/modules/zookeeper-3.4.5/
export ZOOKEEPER_CONF_DIR=$ZOOKEEPER_HOME/conf
export PATH=$PATH:$ZOOKEEPER_HOME/bin
# spark
export SPARK_HOME=/opt/modules/spark-2.1.2
export SPARK_CONF_DIR=$SPARK_HOME/conf
export PATH=$PATH:$SPARK_HOME/bin
export PATH=$PATH:$SPARK_HOME/sbin
# kylin
export KYLIN_HOME=/opt/modules/kylin
export PATH=$PATH:$KYLIN_HOME/bin

3,解压apache-kylin-2.1.0-bin-hbase1x.tar.gz

检测环境,假如仅仅输出如下,说明配置正确

4,要启动的hadoop服务

hadoop集群启动命令,单个节点启动的我们的服务。

启动yarn

yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager

启动hadoop

hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode

启动Zookeeper

zkServer.sh start

启动hbase

hbase-daemon.sh start master

hbase-daemon.sh start regionserver

启动hive的metastore

nohup hive --service metastore >/dev/null 2>&1 &

启动jobhistory

mr-jobhistory-daemon.sh start historyserver

5,hadoop集群的已配置好的软件包

3, 安装kylin并启动

Kylin的启动异常简单:

kylin.sh start

在web浏览器中输入,http://luffy.onepiece.com:7070/kylin ,默认的账号密码是ADMIN/KYLIN,假如呈现如下安装页面,说明安装成功。

四, 测试kylin

测试主要是针对官网提供的demo进行的。

1, 首先生成数据

执行${KYLIN_HOME}/bin/sample.sh。假如配置没有错误,会在结尾得到如下输出

这个时候为了生效我们可以重启kylin,或者在web UI里面重新加载元数据,如下:

2, 构建cube

这时候,首先在左上角的choose project框里选择,learn_kylin工程。在web UI的model栏可以看到。

这时候,在Actions栏里点击build

在弹出框里做如下选择时间大于开始时间,然后点击submit。

在监控栏里面,可以看到cube构建的进度信息

构建结束后

3, 执行sql

在构建好cube之后,在learn_kylin被选中的时候,insight栏里,cube信息

比如,输入如下SQL

select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt

返回结果

4, Web呈现

上步骤返回的结果,实际上可以以图表的形式展示,如下:

展示实际根据,维度及该维度统计的指标。

五, 集群部署

1, kylin Server模式

kylin的实例是无状态的,运行状态存储在他的metadata store(hbase里面存储,文件kylin.properties配置kylin.metadata.url)。为了负载均衡考虑,我们可能会启动多个kylin实例,共享一份元数据(表结构的状态,job的状态,cube的状态)。

特别要提到,每个kylin的实例,我们都要配置kylin.server.mode(conf/kylin.properties),这个属性有三个值:

A,job,运行job 引擎

B,query 运行查询引擎

C,all运行两者。

值得注意的是,仅仅有一个Server可以运行job引擎,也即(处于all模式或者job模式),其它实例必须是query模式。

一个典型的kylin结构图如下:

2, 设置多个kylin REST servers

如果使用kylin的集群模式,这种情况下会有多个REST服务实例,一定要确保每个服务实例在配置文件${KYLIN_HOME}/conf/kylin.properties,有以下配置:

A, kylin.rest.servers

Web服务的地址列表,使能一个web 服务实例跟其他进行数据同步。配置格式如下:

kylin.rest.servers=sandbox1:7070,sandbox2:7070

B, kylin.server.mode

确保,仅仅有一个kylin实例的kylin.server.mode属性被设置为all或者job,其它的为query。

3, 负载均衡

使能kylin的高可用服务,需要在这些服务实例前面设置一个负载均衡器,均衡请求。客户端只需要发送请求给负载均衡器,而不是直接和kylin 服务实例交互。如Nginx。

推荐阅读:

1,Hadoop伪分布式集群安装部署

2,hive安装部署

3,HBase的安装部署

4,ApacheKylinv2.0最新功能和深度 技术解读

5,Apache Kylin优化之—Cube的高级设置