CDH 6.3.2 集成 kylin 的部署與使用

CDH 6.3.2 集成 kylin 的部署與使用

標籤(空格分隔): 大數據運維專欄


  • 一:關於kylin的介紹
  • 二:安裝環境介紹與軟件包的準備
  • 三: 配置kylin 與 CDH 6.3.2集成
  • 四: kylin 的測試
  • 五: kylin 自建表導入數據測試

一:關於kylin的介紹

1.1 Apache Kylin™ 概覽

 Apache Kylin™是一個開源的、分佈式的分析型數據倉庫,提供Hadoop/Spark 之上的 SQL 查詢接口及多維分析(OLAP)能力以支持超大規模數據,最初由 eBay 開發並貢獻至開源社區。它能在亞秒內查詢巨大的表。

Apache Kylin™ 令使用者僅需三步,即可實現超大數據集上的亞秒級查詢。

    1 定義數據集上的一個星形或雪花形模型
    2 在定義的數據表上構建cube
    3 使用標準 SQL 通過 ODBC、JDBC 或 RESTFUL API 進行查詢,僅需亞秒級響應時間即可獲得查詢結果

Kylin 提供與多種數據可視化工具的整合能力,如 Tableau,PowerBI 等,令用戶可以使用 BI 工具對 Hadoop 數據進行分析。

參考官網:

http://kylin.apache.org/cn/

圖片.png-123.3kB


##二:安裝環境介紹與軟件包的準備

2.1 安裝系統環境

系統:CentOS7.5x64
CDH 版本: cdh 6.3.2
jdk 版本: jdk1.8

cat /etc/hosts 

---
192.168.11.37   test01.lanxintec.cn
192.168.11.38   test02.lanxintec.cn
192.168.11.40   test03.lanxintec.cn
---

2.2 kylin 版本

2.2.1 kylin v3.1.0

v3.1.0

    這是 3.0.0 版本後的一個主要版本,包含10個新功能和142個問題的修復以及各種改進。關於具體內容請查看發佈說明.
    發佈說明, 安裝指南 and 升級指南
    源碼下載: apache-kylin-3.1.0-source-release.zip [asc] [sha256]
    Hadoop 2 二進制包:
        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]
        for Cloudera CDH 5.7+ - apache-kylin-3.1.0-bin-cdh57.tar.gz [asc] [sha256]
    Hadoop 3 二進制包:
        for Hadoop 3.1 + HBase 2.0 (includes Hortonworks HDP 3.0) - apache-kylin-3.1.0-bin-hadoop3.tar.gz [asc] [sha256]
        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

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

mv apache-kylin-3.1.0-bin-cdh60.tar.gz software/

3.2 安裝啓動kylin

mkdir -p /opt/bigdata/

cd software

tar -zxvf apache-kylin-3.1.0-bin-cdh60.tar.gz

mv apache-kylin-3.1.0-bin-cdh60 /opt/bigdata/

圖片.png-48.6kB

cd /opt/bigdata/apache-kylin-3.1.0-bin-cdh60

bin/kylin.sh start 

圖片.png-32.9kB

報錯:
    Error: Could not find or load main class org.apache.hadoop.hbase.util.GetJavaProperty

解決: 

 vim /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hbase/bin/hbase

 ----
 在169 行: 加上hbase lib 

CLASSPATH="${HBASE_CONF_DIR}"
CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hbase/lib/*
----

圖片.png-11.4kB

vim /etc/profile 
到最後加上:
---
### set spark home and kylin home and kafka home 
export SPARK_HOME=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/spark
export KAFKA_HOME=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/kafka
export FLINK_HOME=/opt/cloudera/parcels/FLINK/lib/flink
export KYLIN_HOME=/opt/bigdata/apache-kylin-3.1.0-bin-cdh60

---

若沒有集成請集成安裝 flink 與安裝 kafka 

cd /opt/bigdata/apache-kylin-3.1.0-cdh60/

bin/check-env.sh 

保證所有環境都是pass 狀態

圖片.png-20.9kB


啓動kylin 

bin/kylin.sh start

圖片.png-46kB

圖片.png-29.9kB

查看logs目錄
cd /opt/bigdata/apache-kylin-3.1.0-cdh60/logs/
tail -f kylin.log

圖片.png-79.2kB

打開web 也沒

http://192.168.11.37/kylin/

用戶名:ADMIN  密碼:KYLIN  (用戶名密碼都是大寫)

圖片.png-28kB

圖片.png-36.5kB


四:運行kylin 的測試用列

4.1: 運行kylin的用列

4.1.1 啓動sample.sh

cd /opt/bigdata/apache-kylin-3.1.0-cdh60/bin/

./sample.sh

圖片.png-53.5kB

圖片.png-34.8kB

圖片.png-33.9kB


從啓kylin
cd /opt/bigdata/apache-kylin-3.1.0-cdh60/bin
./kylin.sh stop 
./kylin.sh start 

圖片.png-20.7kB

圖片.png-26.9kB

從新刷新一下元數據(RELOAD METADATA)

點擊:System ---> RELOAD METADATA

圖片.png-104.2kB

點擊:YES 

在右下角會有
   Sucess  cache reaload Sucessful

圖片.png-77.1kB

圖片.png-7.1kB


點擊菜單欄上的 Model

會生成兩個sample 表的模型

kylin_sales_model
kylin_streaming_model 

圖片.png-56kB


在hive中 查看錶:

hive 

hive > show tables;

hive> select count(*) from kylin_account;

圖片.png-34.8kB

打開yarn的界面

http://192.168.11.37:8088

圖片.png-56.5kB

最後顯示爲10000 條 數據

圖片.png-53.8kB

將hive 中的表 刷新到 impala 當中

impala的加載表:

impala-shell -i "INVALIDATE METADATA" 

單獨刷新一張表:
refrash  + 表名
hive 的default庫 當中多了幾張kylin的表

圖片.png-55.9kB

4.1.2 構建 表cube

以kylin 表 中 的 : kylin_sales_cube

圖片.png-68.5kB

點擊 YES 

圖片.png-76.1kB

這邊只構建 一個月維度的sales 不然硬件配置不夠,此步會消耗巨大的硬件資源

圖片.png-48kB

構建 點擊monitor 查看build

可以不斷的刷新網頁 查看 job 的 構建 進度

圖片.png-57.9kB

圖片.png-55.9kB

這邊默認 走的是Hadoop 的mapreduce  所以比較慢 

圖片.png-121.5kB

圖片.png-47.9kB

圖片.png-56.9kB

構建查詢:

點擊:insight 
New Query:

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

在hive 中查詢
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

在kylin 中查詢只要 7.09s  而在hive 中查詢 要 102.895s 
執行一個複雜的查詢:

select sum(KYLIN_SALES.PRICE) 
as price_sum,KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME 
from KYLIN_SALES inner join KYLIN_CATEGORY_GROUPINGS
on KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID and 
KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID
group by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
order by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME asc,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME desc

圖片.png-68.7kB

在hive 中查詢:

select sum(KYLIN_SALES.PRICE) 
as price_sum,KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME 
from KYLIN_SALES inner join KYLIN_CATEGORY_GROUPINGS
on KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID and 
KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID
group by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
order by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME asc,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME desc

圖片.png-35kB

圖片.png-15kB

在kylin 中查詢 只要 2.18s  hive 中查詢 要 116.07s

五: kylin 自建表導入數據測試

5.1 自建數據準備文件

create_table.sql  department.csv  employee.csv

將這三個文件傳到 hdfs 上面

hdfs dfs -mkdir /tmp/kylin-test

hdfs dfs -put create_table.sql  department.csv  employee.csv /tmp/kylin-test 

圖片.png-27.4kB

vim create-table.sql 
---
DROP TABLE IF EXISTS employee;

CREATE TABLE employee(
id int,
name string,
deptId int,
age int,
salary float
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

DROP TABLE IF EXISTS department;

CREATE TABLE department(
id int,
name string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

LOAD DATA INPATH '/tmp/kylin-test/employee.csv' OVERWRITE INTO TABLE employee;
LOAD DATA INPATH '/tmp/kylin-test/department.csv' OVERWRITE INTO TABLE department;
---

向hive 中 到如數據

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

點擊 Data_Source 加載 hive 中的 表

圖片.png-34.2kB

加載 department,employee 表
點擊:sync  同步表

圖片.png-28.5kB

圖片.png-31.2kB

創建model,入project的名稱和描述:
kylin_test_table_moder

圖片.png-36.5kB

選擇創建moder 的表
  與lookup table  

圖片.png-34.9kB

圖片.png-64.6kB

圖片.png-46.5kB

選擇維度字段

圖片.png-39.7kB

保存模型moder

圖片.png-59.8kB

圖片.png-36.2kB

創建cube

圖片.png-35.8kB

選擇保存好moder

圖片.png-55.9kB

next -> add Dimensions

圖片.png-33.9kB

圖片.png-37.4kB

圖片.png-63.1kB

next-->  添加 bluk add Measure 

圖片.png-69.9kB

圖片.png-61.2kB

next 

圖片.png-59kB

next 

圖片.png-38.9kB

next 

圖片.png-49kB

save ---> yes 

圖片.png-62.7kB

build --->構建cube

圖片.png-55.4kB

yes 

圖片.png-36.9kB

圖片.png-8.3kB

開始構建cube 

這步 要消耗很長時間,具體 看 硬件配置

圖片.png-53.7kB

圖片.png-26.9kB

圖片.png-99.1kB

圖片.png-45.9kB

構建完成

圖片.png-48.5kB


點擊:insight 
進行查詢測試:

查詢測試:
 select count(*) from department;

圖片.png-53.2kB

kylin 與hive 查詢對比

統計各部門員工薪資總和:

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
kylin 查詢

圖片.png-96.7kB

hive 查詢

圖片.png-59.8kB

圖片.png-33kB

kylin 查詢 只需要 0.48s 
hive 查詢 需要 113.508s 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章