大數據之Kylin入門——第一章Kylin簡介

1.Kylin是什麼

Apache Kylin是一個開源的分佈式分析引擎,提供Hadoop/Spark之上的SQL查詢接口以及多維分析(OLAP)能力以支持超大規模數據,最初由eBay開發並貢獻至開源社區,名字也很中國風,麒麟。Kylin的很多內容很多都是國內開發人員開發貢獻的,官方文檔中文版也非常友好。Kylin它能在亞秒內查詢巨大的Hive表。

第一次看到這段簡短的文字說明,我當時就納悶了,Kylin底層究竟做了什麼,爲什麼能在亞秒級別查詢Hive表。難道Hive真就這麼垃圾嗎?其實不然,Kylin其實是對要查詢的表的指標進行了多維度的hive查詢,也就是做了預計算,並將最終結果保存在hbase中。所謂的亞秒查詢也就是最後從hbase裏面查詢結果而已,現在看來也沒那麼邪乎,hive也並不是想象的那麼垃圾。。。

 

Kylin中文官網:http://kylin.apache.org/cn/

 

2.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(Cube構建引擎)

這套引擎的設計目的在於處理所有離線任務,其中包括shell腳本、Java API以及Map Reduce任務等等。任務引擎對Kylin當中的全部任務加以管理與協調,從而確保每一項任務都能得到切實執行並解決其間出現的故障。

 

3.Kylin安裝

Kylin 依賴於 Hadoop 集羣處理大量的數據集。您需要準備一個配置好 HDFS,YARN,MapReduce,Hive, HBase,Zookeeper 和其他服務的 Hadoop 集羣供 Kylin 運行。Kylin可以安裝在任何節點上。

 

1.下載解壓。

2.配置HADOOP_HOME,HIVE_HOME,HBASE_HOME系統變量。

3.啓動hadoop,zookeeper,hbase,hive服務。我配置了三臺節點,查看各個節點的進程如下:

4.啓動Kylin。

bin/kylin.sh start

5.在web頁面登陸查看

http://hadoop102:7070/kylin/

默認賬號:ADMIN

默認密碼:KYLIN

 

我啓動kylin的時候報了2個錯。

1.找不到hive-site.xml,雖然我配置了hive目錄的系統變量,但是沒有啓動hive的服務,所以要啓動hive的服務纔行。

hive --service metastore > metastore.log 2>&1 &
hive --service hiveserver2 > hiveserver2.log 2>&1 &

 

2.識別不了zookeeper地址。

這個原因是hbase下的配置文件hbase-site.xml中配置的zookeeper地址加上了2181端口號,去掉端口號,重啓hbase即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章