[关闭]
@zhangyy 2021-10-18T14:00:53.000000Z 字数 5648 阅读 170

CDH 6.3.2 集成 kylin 的部署与使用

大数据运维专栏


  • 一:关于kylin的介绍
  • 二:安装环境介绍与软件包的准备
  • 三: 配置kylin 与 CDH 6.3.2集成
  • 四: kylin 的测试
  • 五: kylin 自建表导入数据测试

一:关于kylin的介绍

1.1 Apache Kylin™ 概览

  1. Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区。它能在亚秒内查询巨大的表。
  2. Apache Kylin 令使用者仅需三步,即可实现超大数据集上的亚秒级查询。
  3. 1 定义数据集上的一个星形或雪花形模型
  4. 2 在定义的数据表上构建cube
  5. 3 使用标准 SQL 通过 ODBCJDBC RESTFUL API 进行查询,仅需亚秒级响应时间即可获得查询结果
  6. Kylin 提供与多种数据可视化工具的整合能力,如 TableauPowerBI 等,令用户可以使用 BI 工具对 Hadoop 数据进行分析。
  7. 参考官网:
  8. http://kylin.apache.org/cn/

图片.png-123.3kB


二:安装环境介绍与软件包的准备

2.1 安装系统环境

  1. 系统:CentOS7.5x64
  2. CDH 版本: cdh 6.3.2
  3. jdk 版本: jdk1.8
  4. cat /etc/hosts
  5. ---
  6. 192.168.11.37 test01.lanxintec.cn
  7. 192.168.11.38 test02.lanxintec.cn
  8. 192.168.11.40 test03.lanxintec.cn
  9. ---

2.2 kylin 版本

2.2.1 kylin v3.1.0

  1. v3.1.0
  2. 这是 3.0.0 版本后的一个主要版本,包含10个新功能和142个问题的修复以及各种改进。关于具体内容请查看发布说明.
  3. 发布说明, 安装指南 and 升级指南
  4. 源码下载: apache-kylin-3.1.0-source-release.zip [asc] [sha256]
  5. Hadoop 2 二进制包:
  6. for HBase 1.x (includes HDP 2.3+, AWS EMR 5.0+, Azure HDInsight 3.4 - 3.6) - apache-kylin-3.1.0-bin-hbase1x.tar.gz [asc] [sha256]
  7. for Cloudera CDH 5.7+ - apache-kylin-3.1.0-bin-cdh57.tar.gz [asc] [sha256]
  8. Hadoop 3 二进制包:
  9. for Hadoop 3.1 + HBase 2.0 (includes Hortonworks HDP 3.0) - apache-kylin-3.1.0-bin-hadoop3.tar.gz [asc] [sha256]
  10. for Cloudera CDH 6.0/6.1 (check KYLIN-3564 first) - apache-kylin-3.1.0-bin-cdh60.tar.gz [asc] [sha256]

三: 配置kylin 与 CDH 6.3.2集成

### 3.1 下载kylin

  1. wget https://mirrors.tuna.tsinghua.edu.cn/apache/kylin/apache-kylin-3.1.0/apache-kylin-3.1.0-bin-cdh60.tar.gz
  2. mv apache-kylin-3.1.0-bin-cdh60.tar.gz software/

3.2 安装启动kylin

  1. mkdir -p /opt/bigdata/
  2. cd software
  3. tar -zxvf apache-kylin-3.1.0-bin-cdh60.tar.gz
  4. mv apache-kylin-3.1.0-bin-cdh60 /opt/bigdata/

图片.png-48.6kB

  1. cd /opt/bigdata/apache-kylin-3.1.0-bin-cdh60
  2. bin/kylin.sh start

图片.png-32.9kB

  1. 报错:
  2. Error: Could not find or load main class org.apache.hadoop.hbase.util.GetJavaProperty
  3. 解决:
  4. vim /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hbase/bin/hbase
  5. ----
  6. 169 行: 加上hbase lib
  7. CLASSPATH="${HBASE_CONF_DIR}"
  8. CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hbase/lib/*
  9. ----

图片.png-11.4kB

  1. vim /etc/profile
  2. 到最后加上:
  3. ---
  4. ### set spark home and kylin home and kafka home
  5. export SPARK_HOME=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/spark
  6. export KAFKA_HOME=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/kafka
  7. export FLINK_HOME=/opt/cloudera/parcels/FLINK/lib/flink
  8. export KYLIN_HOME=/opt/bigdata/apache-kylin-3.1.0-bin-cdh60
  9. ---
  10. 若没有集成请集成安装 flink 与安装 kafka
  11. cd /opt/bigdata/apache-kylin-3.1.0-cdh60/
  12. bin/check-env.sh
  13. 保证所有环境都是pass 状态

图片.png-20.9kB


  1. 启动kylin
  2. bin/kylin.sh start

图片.png-46kB

图片.png-29.9kB

  1. 查看logs目录
  2. cd /opt/bigdata/apache-kylin-3.1.0-cdh60/logs/
  3. tail -f kylin.log

图片.png-79.2kB

  1. 打开web 也没
  2. http://192.168.11.37/kylin/
  3. 用户名:ADMIN 密码:KYLIN (用户名密码都是大写)

图片.png-28kB

图片.png-36.5kB


四:运行kylin 的测试用列

4.1: 运行kylin的用列

4.1.1 启动sample.sh

  1. cd /opt/bigdata/apache-kylin-3.1.0-cdh60/bin/
  2. ./sample.sh

图片.png-53.5kB

图片.png-34.8kB

图片.png-33.9kB


  1. 从启kylin
  2. cd /opt/bigdata/apache-kylin-3.1.0-cdh60/bin
  3. ./kylin.sh stop
  4. ./kylin.sh start

图片.png-20.7kB

图片.png-26.9kB

  1. 从新刷新一下元数据(RELOAD METADATA
  2. 点击:System ---> RELOAD METADATA

图片.png-104.2kB

  1. 点击:YES
  2. 在右下角会有
  3. Sucess cache reaload Sucessful

图片.png-77.1kB

图片.png-7.1kB


  1. 点击菜单栏上的 Model
  2. 会生成两个sample 表的模型
  3. kylin_sales_model
  4. kylin_streaming_model

图片.png-56kB


  1. hive 查看表:
  2. hive
  3. hive > show tables;
  4. hive> select count(*) from kylin_account;

图片.png-34.8kB

  1. 打开yarn的界面
  2. http://192.168.11.37:8088

图片.png-56.5kB

  1. 最后显示为10000 数据

图片.png-53.8kB

  1. hive 中的表 刷新到 impala 当中
  2. impala的加载表:
  3. impala-shell -i "INVALIDATE METADATA"
  4. 单独刷新一张表:
  5. refrash + 表名
  6. hive default 当中多了几张kylin的表

图片.png-55.9kB

4.1.2 构建 表cube

  1. kylin kylin_sales_cube

图片.png-68.5kB

  1. 点击 YES

图片.png-76.1kB

  1. 这边只构建 一个月维度的sales 不然硬件配置不够,此步会消耗巨大的硬件资源

图片.png-48kB

  1. 构建 点击monitor 查看build
  2. 可以不断的刷新网页 查看 job 构建 进度

图片.png-57.9kB

图片.png-55.9kB

  1. 这边默认 走的是Hadoop mapreduce 所以比较慢

图片.png-121.5kB

图片.png-47.9kB

图片.png-56.9kB

  1. 构建查询:
  2. 点击:insight
  3. New Query:
  4. select part_dt, sum(price) as total_sold, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt

图片.png-99.1kB

  1. hive 中查询
  2. select part_dt, sum(price) as total_sold, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt

图片.png-75.8kB

图片.png-17.9kB

  1. kylin 中查询只要 7.09s 而在hive 中查询 102.895s
  1. 执行一个复杂的查询:
  2. select sum(KYLIN_SALES.PRICE)
  3. as price_sum,KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
  4. from KYLIN_SALES inner join KYLIN_CATEGORY_GROUPINGS
  5. on KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID and
  6. KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID
  7. group by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
  8. order by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME asc,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME desc

图片.png-68.7kB

  1. hive 中查询:
  2. select sum(KYLIN_SALES.PRICE)
  3. as price_sum,KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
  4. from KYLIN_SALES inner join KYLIN_CATEGORY_GROUPINGS
  5. on KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID and
  6. KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID
  7. group by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
  8. order by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME asc,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME desc

图片.png-35kB

图片.png-15kB

  1. kylin 中查询 只要 2.18s hive 中查询 116.07s

五: kylin 自建表导入数据测试

5.1 自建数据准备文件

  1. create_table.sql department.csv employee.csv
  2. 将这三个文件传到 hdfs 上面
  3. hdfs dfs -mkdir /tmp/kylin-test
  4. hdfs dfs -put create_table.sql department.csv employee.csv /tmp/kylin-test

图片.png-27.4kB

  1. vim create-table.sql
  2. ---
  3. DROP TABLE IF EXISTS employee;
  4. CREATE TABLE employee(
  5. id int,
  6. name string,
  7. deptId int,
  8. age int,
  9. salary float
  10. )
  11. ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
  12. STORED AS TEXTFILE;
  13. DROP TABLE IF EXISTS department;
  14. CREATE TABLE department(
  15. id int,
  16. name string
  17. )
  18. ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
  19. STORED AS TEXTFILE;
  20. LOAD DATA INPATH '/tmp/kylin-test/employee.csv' OVERWRITE INTO TABLE employee;
  21. LOAD DATA INPATH '/tmp/kylin-test/department.csv' OVERWRITE INTO TABLE department;
  22. ---
  23. hive 到如数据
  24. hive -f create_table.sql

图片.png-40kB

图片.png-37kB

图片.png-24.6kB

图片.png-20.5kB


5.2 在kylin 中创建demo

图片.png-32.7kB

图片.png-33.4kB

  1. 点击 Data_Source 加载 hive 中的

图片.png-34.2kB

  1. 加载 department,employee
  2. 点击:sync 同步表

图片.png-28.5kB

图片.png-31.2kB

  1. 创建model,入project的名称和描述:
  2. kylin_test_table_moder

图片.png-36.5kB

  1. 选择创建moder 的表
  2. lookup table

图片.png-34.9kB

图片.png-64.6kB

图片.png-46.5kB

  1. 选择维度字段

图片.png-39.7kB

  1. 保存模型moder

图片.png-59.8kB

图片.png-36.2kB

  1. 创建cube

图片.png-35.8kB

  1. 选择保存好moder

图片.png-55.9kB

  1. next -> add Dimensions

图片.png-33.9kB

图片.png-37.4kB

图片.png-63.1kB

  1. next--> 添加 bluk add Measure

图片.png-69.9kB

图片.png-61.2kB

  1. next

图片.png-59kB

  1. next

图片.png-38.9kB

  1. next

图片.png-49kB

  1. save ---> yes

图片.png-62.7kB

  1. build --->构建cube

图片.png-55.4kB

  1. yes

图片.png-36.9kB

图片.png-8.3kB

  1. 开始构建cube
  2. 这步 要消耗很长时间,具体 硬件配置

图片.png-53.7kB

图片.png-26.9kB

图片.png-99.1kB

图片.png-45.9kB

  1. 构建完成

图片.png-48.5kB


  1. 点击:insight
  2. 进行查询测试:
  3. 查询测试:
  4. select count(*) from department;

图片.png-53.2kB

  1. kylin hive 查询对比
  2. 统计各部门员工薪资总和:
  3. select d.ID,sum(e.SALARY) as salary from EMPLOYEE as e left join DEPARTMENT as d on e.DEPTID=d.id group by d.ID order by salary desc
  1. kylin 查询

图片.png-96.7kB

  1. hive 查询

图片.png-59.8kB

图片.png-33kB

  1. kylin 查询 只需要 0.48s
  2. hive 查询 需要 113.508s

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注