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