与kylin_什么是Kylin,Kylin的学习
概述
Kylin定義
Apache Kylin是一個(gè)開(kāi)源的分布式分析引擎,提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規(guī)模數(shù)據(jù),最初由eBay開(kāi)發(fā)并貢獻(xiàn)至開(kāi)源社區(qū)。它能在亞秒內(nèi)查詢巨大的Hive表。
Kylin架構(gòu)
1)REST Server
REST Server是一套面向應(yīng)用程序開(kāi)發(fā)的入口點(diǎn),旨在實(shí)現(xiàn)針對(duì)Kylin平臺(tái)的應(yīng)用開(kāi)發(fā)工作。 此類應(yīng)用程序可以提供查詢、獲取結(jié)果、觸發(fā)cube構(gòu)建任務(wù)、獲取元數(shù)據(jù)以及獲取用戶權(quán)限等等。另外可以通過(guò)Restful接口實(shí)現(xiàn)SQL查詢。
2)查詢引擎(Query Engine)
當(dāng)cube準(zhǔn)備就緒后,查詢引擎就能夠獲取并解析用戶查詢。它隨后會(huì)與系統(tǒng)中的其它組件進(jìn)行交互,從而向用戶返回對(duì)應(yīng)的結(jié)果。
3)路由器(Routing)
在最初設(shè)計(jì)時(shí)曾考慮過(guò)將Kylin不能執(zhí)行的查詢引導(dǎo)去Hive中繼續(xù)執(zhí)行,但在實(shí)踐后發(fā)現(xiàn)Hive與Kylin的速度差異過(guò)大,導(dǎo)致用戶無(wú)法對(duì)查詢的速度有一致的期望,很可能大多數(shù)查詢幾秒內(nèi)就返回結(jié)果了,而有些查詢則要等幾分鐘到幾十分鐘,因此體驗(yàn)非常糟糕。最后這個(gè)路由功能在發(fā)行版中默認(rèn)關(guān)閉。
4)元數(shù)據(jù)管理工具(Metadata)
Kylin是一款元數(shù)據(jù)驅(qū)動(dòng)型應(yīng)用程序。元數(shù)據(jù)管理工具是一大關(guān)鍵性組件,用于對(duì)保存在Kylin當(dāng)中的所有元數(shù)據(jù)進(jìn)行管理,其中包括最為重要的cube元數(shù)據(jù)。其它全部組件的正常運(yùn)作都需以元數(shù)據(jù)管理工具為基礎(chǔ)。 Kylin的元數(shù)據(jù)存儲(chǔ)在hbase中。
5)任務(wù)引擎(Cube Build Engine)
這套引擎的設(shè)計(jì)目的在于處理所有離線任務(wù),其中包括shell腳本、Java API以及Map Reduce任務(wù)等等。任務(wù)引擎對(duì)Kylin當(dāng)中的全部任務(wù)加以管理與協(xié)調(diào),從而確保每一項(xiàng)任務(wù)都能得到切實(shí)執(zhí)行并解決其間出現(xiàn)的故障。
Kylin特點(diǎn)
Kylin的主要特點(diǎn)包括支持SQL接口、支持超大規(guī)模數(shù)據(jù)集、亞秒級(jí)響應(yīng)、可伸縮性、高吞吐率、BI工具集成等。
1)標(biāo)準(zhǔn)SQL接口:Kylin是以標(biāo)準(zhǔn)的SQL作為對(duì)外服務(wù)的接口。
2)支持超大數(shù)據(jù)集:Kylin對(duì)于大數(shù)據(jù)的支撐能力可能是目前所有技術(shù)中最為領(lǐng)先的。早在2015年eBay的生產(chǎn)環(huán)境中就能支持百億記錄的秒級(jí)查詢,之后在移動(dòng)的應(yīng)用場(chǎng)景中又有了千億記錄秒級(jí)查詢的案例。
3)亞秒級(jí)響應(yīng):Kylin擁有優(yōu)異的查詢響應(yīng)速度,這點(diǎn)得益于預(yù)計(jì)算,很多復(fù)雜的計(jì)算,比如連接、聚合,在離線的預(yù)計(jì)算過(guò)程中就已經(jīng)完成,這大大降低了查詢時(shí)刻所需的計(jì)算量,提高了響應(yīng)速度。
4)可伸縮性和高吞吐率:單節(jié)點(diǎn)Kylin可實(shí)現(xiàn)每秒70個(gè)查詢,還可以搭建Kylin的集群。
5)BI工具集成
Kylin可以與現(xiàn)有的BI工具集成,具體包括如下內(nèi)容。
ODBC:與Tableau、Excel、PowerBI等工具集成
JDBC:與Saiku、BIRT等Java工具集成
RestAPI:與JavaScript、Web網(wǎng)頁(yè)集成
Kylin開(kāi)發(fā)團(tuán)隊(duì)還貢獻(xiàn)了Zepplin的插件,也可以使用Zepplin來(lái)訪問(wèn)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)啟動(dòng)
bin/kylin.sh start啟動(dòng)之后查看各個(gè)節(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注意:啟動(dòng)Kylin之前要保證HDFS,YARN,ZK,HBASE相關(guān)進(jìn)程是正常運(yùn)行的。
在http://hadoop102:7070/kylin查看Web頁(yè)面
用戶名為:ADMIN,密碼為:KYLIN(系統(tǒng)已填)
4)關(guān)閉
bin/kylin.sh stop快速入門(mén)
需求:實(shí)現(xiàn)按照維度(工作地點(diǎn))統(tǒng)計(jì)員工信息
數(shù)據(jù)準(zhǔn)備
在Hive中創(chuàng)建數(shù)據(jù),分別創(chuàng)建部門(mén)和員工外部表,并向表中導(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)建表語(yǔ)句
創(chuàng)建部門(mén)表
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)建項(xiàng)目
登錄系統(tǒng)
創(chuàng)建工程
1)點(diǎn)擊圖上所示“+”號(hào)
2)填入項(xiàng)目名及描述點(diǎn)擊Submit
選擇數(shù)據(jù)源
1)選擇加載數(shù)據(jù)源方式
2)輸入要作為數(shù)據(jù)源的表
3)查看數(shù)據(jù)源
創(chuàng)建Model
1)回到Models頁(yè)面
2)點(diǎn)擊New按鈕后點(diǎn)擊New Model
3)填寫(xiě)Model名稱及描述后Next
4)選擇事實(shí)表
5)添加維度表
6)選擇添加的維度表及join字段
7)選擇維度信息
8)選擇度量信息
9)添加分區(qū)信息及過(guò)濾條件之后“Save”
10)創(chuàng)建Model完成
創(chuàng)建Cube
1)點(diǎn)擊New按鈕然后選擇New Cube
2)選擇Model及填寫(xiě)Cube Name
3)添加維度
4)添加需要做預(yù)計(jì)算的內(nèi)容
5)動(dòng)態(tài)更新相關(guān)(默認(rèn))
6)高階模塊(默認(rèn))
7)需要修改的配置
8)Cube信息展示
9)Cube配置完成
10)觸發(fā)預(yù)計(jì)算
11)查看Build進(jìn)度
12)構(gòu)建Cube完成
Hive和Kylin性能對(duì)比
需求:根據(jù)部門(mén)名稱[dname]統(tǒng)計(jì)員工薪資總數(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頁(yè)面
2)在New Query中輸入查詢語(yǔ)句并Submit
3)圖表展示之條形圖
4)圖表展示之餅圖
總結(jié)
以上是生活随笔為你收集整理的与kylin_什么是Kylin,Kylin的学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 代工备案是什么意思(代工备案)
- 下一篇: 如何查看spark消耗的内存_Spark