新聞中心
前言
創(chuàng)新互聯(lián)于2013年成立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元威信做網(wǎng)站,已為上家服務(wù),為威信各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18982081108
Apache Kylin是一個(gè)開(kāi)源的分布式分析引擎,最初由eBay開(kāi)發(fā)貢獻(xiàn)至開(kāi)源社區(qū)。它提供Hadoop之上的SQL查詢(xún)接口及多維分析(OLAP)能力以支持大規(guī)模數(shù)據(jù),能夠處理TB乃至PB級(jí)別的分析任務(wù),能夠在亞秒級(jí)查詢(xún)巨大的Hive表,并支持高并發(fā)。
Kylin的理論基礎(chǔ):空間換時(shí)間。
Kylin從數(shù)據(jù)倉(cāng)庫(kù)中最常用的Hive中讀取源數(shù)據(jù),使用 MapReduce作為Cube構(gòu)建的引擎,并把預(yù)計(jì)算結(jié)果保存在HBase中,對(duì)外暴露Rest API/JDBC/ODBC的查詢(xún)接口。
部署Kylin
(一)下載安裝
寫(xiě)這篇博客時(shí),最新版為2.0.0 beta版,最新的正式版為1.6.0,所以我使用的1.6.0。
可以直接下載源碼包編譯安裝,也可以根據(jù)自己的hadoop環(huán)境版本下載對(duì)應(yīng)的二進(jìn)制安裝包。
我使用的是HDP2.4.2,Hbase版本是1.1.2。直接下載的是二進(jìn)制包安裝。
$ 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用戶(hù) #check-env.sh腳本執(zhí)行的是檢查本地hive,hbase,hadoop等環(huán)境情況。 #并會(huì)在hdfs中創(chuàng)建一個(gè)kylin的工作目錄。 $ su hdfs $ ./bin/check-env.sh KYLIN_HOME is set to /opt/apache-kylin-1.6.0-hbase1.x-bin $ hadoop fs -ls / #多了一個(gè)/kylin的目錄drwxr-xr-x - hdfs hdfs 0 2017-01-19 10:08 /kylin
(三)啟動(dòng)
$ 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
(四)進(jìn)入頁(yè)面
http://localhost:7070/kylin
user:ADMIN passwd:KYLIN
使用Kylin
(一)添加新的項(xiàng)目
給項(xiàng)目起一個(gè)名字,添加項(xiàng)目描述。
給項(xiàng)目添加數(shù)據(jù)源(加載hive數(shù)據(jù)表)
在數(shù)據(jù)源的頁(yè)面,可以手動(dòng)填寫(xiě)hive表名
成功加載了resource表的數(shù)據(jù)
這時(shí)就可以看到對(duì)應(yīng)表的字段屬性。
(二)創(chuàng)建model(模型)
新建model
編輯model名字和描述
選擇數(shù)據(jù)表
接下來(lái)選擇維度和度量,這是構(gòu)建預(yù)計(jì)算模型cube中最為重要的兩個(gè)屬性。
度量: 度量是具體考察的聚合數(shù)量值,例如:銷(xiāo)售數(shù)量、銷(xiāo)售金額、人均購(gòu)買(mǎi)量。計(jì)算機(jī)一點(diǎn)描述就是在SQL中就是聚合函數(shù)。
例如:select cate,count(1),sum(num) from fact_table where date>’20161112’ group by cate;
count(1)、sum(num)是度量
維度: 維度是觀(guān)察數(shù)據(jù)的角度。例如:銷(xiāo)售日期、銷(xiāo)售地點(diǎn)。計(jì)算機(jī)一點(diǎn)的描述就是在SQL中就是where、group by里的字段
例如:select cate,count(1),sum(num) from fact_table where date>’20161112’ group by cate;
date、cate是維度
選擇要分析的維度字段
選擇要分析的度量字段
設(shè)置表中的時(shí)間字段
(三)創(chuàng)建cube(立方體)
Cube構(gòu)建需要依賴(lài)前面創(chuàng)建的model。選擇model,設(shè)置cube名。
從上面model設(shè)置的維度字段中選擇你需要分析的字段。
選擇度量。
第一個(gè)_COUNT_是默認(rèn)要計(jì)算的。
第二個(gè)COUNT_DISTINCT,可以去重計(jì)算得到有多少個(gè)IP地址,即通常的UV。
(COUNT_DISTINCT計(jì)算時(shí)是有精確度選擇的,計(jì)算越精準(zhǔn)需要的時(shí)間就越長(zhǎng))
第三個(gè)TOP_N,是用來(lái)計(jì)算排名的。
第四個(gè)MAX,是用來(lái)計(jì)算最大值的
還有其他的MIN,SUM等各種計(jì)算表達(dá)式。
后面的幾個(gè)基本上就沒(méi)有什么要設(shè)置的了,直接Next了,最后保存cube就好了。
(四)構(gòu)建cube
創(chuàng)建好cube之后,我們只是得到了一個(gè)計(jì)算模型。需要將數(shù)據(jù)按照我們?cè)O(shè)定的模型去計(jì)算,才能得到相應(yīng)的結(jié)果。
下面開(kāi)始構(gòu)建cube,在A(yíng)ction中選擇Build
選擇要構(gòu)建的時(shí)間范圍(如果數(shù)據(jù)是持續(xù)寫(xiě)入hive表,那么可以使用cube持續(xù)構(gòu)建)
進(jìn)入Monitor中查看正在構(gòu)建的Cube,和歷史構(gòu)建的cube
(五)查詢(xún)
cube構(gòu)建成功后,數(shù)據(jù)就已經(jīng)計(jì)算過(guò),并將計(jì)算結(jié)果存儲(chǔ)到了Hbase。那么這時(shí)候我們可以使用SQL在kylin中進(jìn)行查詢(xún)。
比較一下在kylin中查詢(xún)和直接在hive中查詢(xún)的速度。
執(zhí)行一個(gè)group by order by的查詢(xún)。
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ù)計(jì)算之后,這條查詢(xún)只用了0.11s
直接在hive中進(jìn)行計(jì)算時(shí)間是30.05s
時(shí)間相差270倍?。?!
(六)樣例數(shù)據(jù)
#kylin自帶一個(gè)樣例,包含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這個(gè)項(xiàng)目。并且有創(chuàng)建好的model和cube,可以供參考和學(xué)習(xí)。
文章題目:大數(shù)據(jù)分析平臺(tái)ApacheKylin的部署(Cube構(gòu)建使用)
標(biāo)題網(wǎng)址:http://www.dlmjj.cn/article/ihshch.html