与kylin_什么是Kylin,Kylin的学习
概述
Kylin定義
Apache Kylin是一個開源的分布式分析引擎,提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規(guī)模數(shù)據(jù),最初由eBay開發(fā)并貢獻(xiàn)至開源社區(qū)。它能在亞秒內(nèi)查詢巨大的Hive表。
Kylin架構(gòu)
1)REST Server
REST Server是一套面向應(yīng)用程序開發(fā)的入口點(diǎn),旨在實現(xiàn)針對Kylin平臺的應(yīng)用開發(fā)工作。 此類應(yīng)用程序可以提供查詢、獲取結(jié)果、觸發(fā)cube構(gòu)建任務(wù)、獲取元數(shù)據(jù)以及獲取用戶權(quán)限等等。另外可以通過Restful接口實現(xiàn)SQL查詢。
2)查詢引擎(Query Engine)
當(dāng)cube準(zhǔn)備就緒后,查詢引擎就能夠獲取并解析用戶查詢。它隨后會與系統(tǒng)中的其它組件進(jìn)行交互,從而向用戶返回對應(yīng)的結(jié)果。
3)路由器(Routing)
在最初設(shè)計時曾考慮過將Kylin不能執(zhí)行的查詢引導(dǎo)去Hive中繼續(xù)執(zhí)行,但在實踐后發(fā)現(xiàn)Hive與Kylin的速度差異過大,導(dǎo)致用戶無法對查詢的速度有一致的期望,很可能大多數(shù)查詢幾秒內(nèi)就返回結(jié)果了,而有些查詢則要等幾分鐘到幾十分鐘,因此體驗非常糟糕。最后這個路由功能在發(fā)行版中默認(rèn)關(guān)閉。
4)元數(shù)據(jù)管理工具(Metadata)
Kylin是一款元數(shù)據(jù)驅(qū)動型應(yīng)用程序。元數(shù)據(jù)管理工具是一大關(guān)鍵性組件,用于對保存在Kylin當(dāng)中的所有元數(shù)據(jù)進(jìn)行管理,其中包括最為重要的cube元數(shù)據(jù)。其它全部組件的正常運(yùn)作都需以元數(shù)據(jù)管理工具為基礎(chǔ)。 Kylin的元數(shù)據(jù)存儲在hbase中。
5)任務(wù)引擎(Cube Build Engine)
這套引擎的設(shè)計目的在于處理所有離線任務(wù),其中包括shell腳本、Java API以及Map Reduce任務(wù)等等。任務(wù)引擎對Kylin當(dāng)中的全部任務(wù)加以管理與協(xié)調(diào),從而確保每一項任務(wù)都能得到切實執(zhí)行并解決其間出現(xiàn)的故障。
Kylin特點(diǎn)
Kylin的主要特點(diǎn)包括支持SQL接口、支持超大規(guī)模數(shù)據(jù)集、亞秒級響應(yīng)、可伸縮性、高吞吐率、BI工具集成等。
1)標(biāo)準(zhǔn)SQL接口:Kylin是以標(biāo)準(zhǔn)的SQL作為對外服務(wù)的接口。
2)支持超大數(shù)據(jù)集:Kylin對于大數(shù)據(jù)的支撐能力可能是目前所有技術(shù)中最為領(lǐng)先的。早在2015年eBay的生產(chǎn)環(huán)境中就能支持百億記錄的秒級查詢,之后在移動的應(yīng)用場景中又有了千億記錄秒級查詢的案例。
3)亞秒級響應(yīng):Kylin擁有優(yōu)異的查詢響應(yīng)速度,這點(diǎn)得益于預(yù)計算,很多復(fù)雜的計算,比如連接、聚合,在離線的預(yù)計算過程中就已經(jīng)完成,這大大降低了查詢時刻所需的計算量,提高了響應(yīng)速度。
4)可伸縮性和高吞吐率:單節(jié)點(diǎn)Kylin可實現(xiàn)每秒70個查詢,還可以搭建Kylin的集群。
5)BI工具集成
Kylin可以與現(xiàn)有的BI工具集成,具體包括如下內(nèi)容。
ODBC:與Tableau、Excel、PowerBI等工具集成
JDBC:與Saiku、BIRT等Java工具集成
RestAPI:與JavaScript、Web網(wǎng)頁集成
Kylin開發(fā)團(tuán)隊還貢獻(xiàn)了Zepplin的插件,也可以使用Zepplin來訪問Kylin服務(wù)。
Kylin環(huán)境搭建
安裝地址
1)官網(wǎng)地址
http://kylin.apache.org/cn/2)官方文檔
http://kylin.apache.org/cn/docs/3)下載地址
http://kylin.apache.org/cn/download/安裝部署
1)將apache-kylin-2.5.1-bin-hbase1x.tar.gz上傳到Linux
2)解壓apache-kylin-2.5.1-bin-hbase1x.tar.gz到/opt/module
tar -zxvf apache-kylin-2.5.1-bin-hbase1x.tar.gz -C /opt/module/注意:需要在/etc/profile文件中配置HADOOP_HOME,HIVE_HOME,HBASE_HOME并source使其生效。
3)啟動
bin/kylin.sh start啟動之后查看各個節(jié)點(diǎn)進(jìn)程
--------------------- hadoop102 ----------------3360 JobHistoryServer31425 HMaster3282 NodeManager3026 DataNode53283 Jps2886 NameNode44007 RunJar2728 QuorumPeerMain31566 HRegionServer--------------------- hadoop103 ----------------5040 HMaster2864 ResourceManager9729 Jps2657 QuorumPeerMain4946 HRegionServer2979 NodeManager2727 DataNode--------------------- hadoop104 ----------------4688 HRegionServer2900 NodeManager9848 Jps2636 QuorumPeerMain2700 DataNode2815 SecondaryNameNode注意:啟動Kylin之前要保證HDFS,YARN,ZK,HBASE相關(guān)進(jìn)程是正常運(yùn)行的。
在http://hadoop102:7070/kylin查看Web頁面
用戶名為:ADMIN,密碼為:KYLIN(系統(tǒng)已填)
4)關(guān)閉
bin/kylin.sh stop快速入門
需求:實現(xiàn)按照維度(工作地點(diǎn))統(tǒng)計員工信息
數(shù)據(jù)準(zhǔn)備
在Hive中創(chuàng)建數(shù)據(jù),分別創(chuàng)建部門和員工外部表,并向表中導(dǎo)入數(shù)據(jù)。
(1)原始數(shù)據(jù)
dept.txt
10ACCOUNTING170020RESEARCH180030SALES190040OPERATIONS1700emp.txt
7369SMITHCLERK79021980-12-17800.00207499ALLENSALESMAN76981981-2-201600.00300.00307521WARDSALESMAN76981981-2-221250.00500.00307566JONESMANAGER78391981-4-22975.00207654MARTINSALESMAN76981981-9-281250.001400.00307698BLAKEMANAGER78391981-5-12850.00307782CLARKMANAGER78391981-6-92450.00107788SCOTTANALYST75661987-4-193000.00207839KINGPRESIDENT1981-11-175000.00107844TURNERSALESMAN76981981-9-81500.000.00307876ADAMSCLERK77881987-5-231100.00207900JAMESCLERK76981981-12-3950.00307902FORDANALYST75661981-12-33000.00207934MILLERCLERK77821982-1-231300.0010(2)建表語句
創(chuàng)建部門表
create external table if not exists default.dept(deptno int,dname string,loc int)row format delimited fields terminated by '';創(chuàng)建員工表
create external table if not exists default.emp(empno int,ename string,job string,mgr int,hiredate string, sal double, comm double,deptno int)row format delimited fields terminated by '';(3)查看創(chuàng)建的表
hive (default)> show tables;OKtab_namedeptemp(4)向外部表中導(dǎo)入數(shù)據(jù)
hive (default)> load data local inpath '/opt/module/datas/dept.txt' into table default.dept;hive (default)> load data local inpath '/opt/module/datas/emp.txt' into table default.emp;查詢結(jié)果
hive (default)> select * from emp;hive (default)> select * from dept;創(chuàng)建項目
登錄系統(tǒng)
創(chuàng)建工程
1)點(diǎn)擊圖上所示“+”號
2)填入項目名及描述點(diǎn)擊Submit
選擇數(shù)據(jù)源
1)選擇加載數(shù)據(jù)源方式
2)輸入要作為數(shù)據(jù)源的表
3)查看數(shù)據(jù)源
創(chuàng)建Model
1)回到Models頁面
2)點(diǎn)擊New按鈕后點(diǎn)擊New Model
3)填寫Model名稱及描述后Next
4)選擇事實表
5)添加維度表
6)選擇添加的維度表及join字段
7)選擇維度信息
8)選擇度量信息
9)添加分區(qū)信息及過濾條件之后“Save”
10)創(chuàng)建Model完成
創(chuàng)建Cube
1)點(diǎn)擊New按鈕然后選擇New Cube
2)選擇Model及填寫Cube Name
3)添加維度
4)添加需要做預(yù)計算的內(nèi)容
5)動態(tài)更新相關(guān)(默認(rèn))
6)高階模塊(默認(rèn))
7)需要修改的配置
8)Cube信息展示
9)Cube配置完成
10)觸發(fā)預(yù)計算
11)查看Build進(jìn)度
12)構(gòu)建Cube完成
Hive和Kylin性能對比
需求:根據(jù)部門名稱[dname]統(tǒng)計員工薪資總數(shù)[sum(sal)]
Hive查詢
select dname,sum(sal) from emp e join dept d on e.deptno = d.deptno group by dname;Time taken: 23.893 seconds, Fetched: 3 row(s)
Kylin查詢
1)進(jìn)入Insight頁面
2)在New Query中輸入查詢語句并Submit
3)圖表展示之條形圖
4)圖表展示之餅圖
總結(jié)
以上是生活随笔為你收集整理的与kylin_什么是Kylin,Kylin的学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代工备案是什么意思(代工备案)
- 下一篇: 如何查看spark消耗的内存_Spark