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頁面登陸查看
默認賬號: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即可。