美文网首页
重磅:如何玩转kylin

重磅:如何玩转kylin

作者: fat32jin | 来源:发表于2020-05-14 06:48 被阅读0次

    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 服务实例交互。如Nginx1, 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

    相关文章

      网友评论

          本文标题:重磅:如何玩转kylin

          本文链接:https://www.haomeiwen.com/subject/xghkbqtx.html