溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)

發(fā)布時間:2020-06-08 13:44:24 來源:網(wǎng)絡(luò) 閱讀:7278 作者:醬醬醬子啊 欄目:大數(shù)據(jù)

前言

Apache Kylin是一個開源的分布式分析引擎,最初由eBay開發(fā)貢獻至開源社區(qū)。它提供Hadoop之上的SQL查詢接口及多維分析(OLAP)能力以支持大規(guī)模數(shù)據(jù),能夠處理TB乃至PB級別的分析任務(wù),能夠在亞秒級查詢巨大的Hive表,并支持高并發(fā)。


Kylin的理論基礎(chǔ):空間換時間。

Kylin從數(shù)據(jù)倉庫中最常用的Hive中讀取源數(shù)據(jù),使用 MapReduce作為Cube構(gòu)建的引擎,并把預(yù)計算結(jié)果保存在HBase中,對外暴露Rest API/JDBC/ODBC的查詢接口。




部署Kylin

(一)下載安裝

寫這篇博客時,最新版為2.0.0 beta版,最新的正式版為1.6.0,所以我使用的1.6.0。

可以直接下載源碼包編譯安裝,也可以根據(jù)自己的hadoop環(huán)境版本下載對應(yīng)的二進制安裝包。

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)

我使用的是HDP2.4.2,Hbase版本是1.1.2。直接下載的是二進制包安裝。


$ cd /opt
$ wget http://ftp.tc.edu.tw/pub/Apache/kylin/apache-kylin-1.6.0/apache-kylin-1.6.0-hbase1.x-bin.tar.gz
$ tar xf apache-kylin-1.6.0-hbase1.x-bin.tar.gz
$ vim /etc/profile
export KYLIN_HOME=/opt/apache-kylin-1.6.0-hbase1.x-bin
$ source /etc/profile



(二)環(huán)境檢查

$cd /opt/apache-kylin-1.6.0-hbase1.x-bin
$./bin/check-env.sh
KYLIN_HOME is set to /opt/apache-kylin-1.6.0-hbase1.x-binmkdir: Permission denied: user=root, access=WRITE, inode="/kylin":hdfs:hdfs:drwxr-xr-xfailed to create /kylin, Please make sure the user has right to access /kylin

#提示使用hdfs用戶
#check-env.sh腳本執(zhí)行的是檢查本地hive,hbase,hadoop等環(huán)境情況。
#并會在hdfs中創(chuàng)建一個kylin的工作目錄。

$ su hdfs
$ ./bin/check-env.sh 
KYLIN_HOME is set to /opt/apache-kylin-1.6.0-hbase1.x-bin
$ hadoop fs -ls /   #多了一個/kylin的目錄drwxr-xr-x   - hdfs   hdfs            0 2017-01-19 10:08 /kylin



(三)啟動

$ chown hdfs.hadoop /opt/apache-kylin-1.6.0-hbase1.x-bin 
$ ./bin/kylin.sh start
A new Kylin instance is started by hdfs, stop it using "kylin.sh stop"Please visit 
 You can check the log at /opt/apache-kylin-1.6.0-hbase1.x-bin/logs/kylin.log


(四)進入頁面

http://localhost:7070/kylin

user:ADMIN    passwd:KYLIN

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)



使用Kylin

(一)添加新的項目

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)




給項目起一個名字,添加項目描述。

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)




給項目添加數(shù)據(jù)源(加載hive數(shù)據(jù)表)

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)





在數(shù)據(jù)源的頁面,可以手動填寫hive表名

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)




成功加載了resource表的數(shù)據(jù)

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)




這時就可以看到對應(yīng)表的字段屬性。

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)





(二)創(chuàng)建model(模型)

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)

新建model

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)



編輯model名字和描述

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)




選擇數(shù)據(jù)表

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)





接下來選擇維度和度量,這是構(gòu)建預(yù)計算模型cube中最為重要的兩個屬性。 

度量: 度量是具體考察的聚合數(shù)量值,例如:銷售數(shù)量、銷售金額、人均購買量。計算機一點描述就是在SQL中就是聚合函數(shù)。

例如:select cate,count(1),sum(num) from fact_table where date>’20161112’ group by cate;

count(1)、sum(num)是度量

維度: 維度是觀察數(shù)據(jù)的角度。例如:銷售日期、銷售地點。計算機一點的描述就是在SQL中就是where、group by里的字段

例如:select cate,count(1),sum(num) from fact_table where date>’20161112’ group by cate;

date、cate是維度


選擇要分析的維度字段

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)




選擇要分析的度量字段

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)




設(shè)置表中的時間字段

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)







(三)創(chuàng)建cube(立方體)

Cube構(gòu)建需要依賴前面創(chuàng)建的model。選擇model,設(shè)置cube名。

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)



從上面model設(shè)置的維度字段中選擇你需要分析的字段。

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)




選擇度量。

第一個_COUNT_是默認(rèn)要計算的。

第二個COUNT_DISTINCT,可以去重計算得到有多少個IP地址,即通常的UV。

(COUNT_DISTINCT計算時是有精確度選擇的,計算越精準(zhǔn)需要的時間就越長)

第三個TOP_N,是用來計算排名的。

第四個MAX,是用來計算最大值的


還有其他的MIN,SUM等各種計算表達式。

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)

后面的幾個基本上就沒有什么要設(shè)置的了,直接Next了,最后保存cube就好了。





四)構(gòu)建cube

創(chuàng)建好cube之后,我們只是得到了一個計算模型。需要將數(shù)據(jù)按照我們設(shè)定的模型去計算,才能得到相應(yīng)的結(jié)果。


下面開始構(gòu)建cube,在Action中選擇Build

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)



選擇要構(gòu)建的時間范圍(如果數(shù)據(jù)是持續(xù)寫入hive表,那么可以使用cube持續(xù)構(gòu)建)

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)




進入Monitor中查看正在構(gòu)建的Cube,和歷史構(gòu)建的cube

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)




(五)查詢

cube構(gòu)建成功后,數(shù)據(jù)就已經(jīng)計算過,并將計算結(jié)果存儲到了Hbase。那么這時候我們可以使用SQL在kylin中進行查詢。

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)


比較一下在kylin中查詢和直接在hive中查詢的速度。

執(zhí)行一個group by order by的查詢。

SQL:select ip, max(loadmax)  as loadmax,max(connectmax) as connectmax, max(eth0max) as eth0max, max(eth2max) as eth2max ,max(rospace) as rospace,max(team) as team  from resource  group by ip order by loadmax asc ;


在Kylin預(yù)計算之后,這條查詢只用了0.11s

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)



直接在hive中進行計算時間是30.05s

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)




時間相差270倍?。?!





(六)樣例數(shù)據(jù)

#kylin自帶一個樣例,包含1w條數(shù)據(jù)的樣本

$ ./bin/sample.sh
Sample cube is created successfully in project 'learn_kylin'.
Restart Kylin server or reload the metadata from web UI to see the change.
$ ./bin/kylin.sh stop
stopping Kylin:15334
$ ./bin/kylin.sh start

可以在Kylin中看到learn_kylin這個項目。并且有創(chuàng)建好的model和cube,可以供參考和學(xué)習(xí)。

大數(shù)據(jù)分析平臺Apache Kylin的部署(Cube構(gòu)建使用)



向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI