Apache Kylin是一個開源的分佈式分析引擎,提供SQL接口而且用於OLAP業務於Hadoop的大數據集上,該項目由eBay貢獻於Apache。node
在使用一種模型,咱們得知道她是幹什麼的,那麼首先來看看Kylin的特性,其內容以下所示:算法
Kylin有其本身的生態圈,以下圖所示:apache
從上圖中,咱們能夠看到,Kylin的核心包含:Kylin OLAP引擎基礎框架,Metadata引擎,查詢引擎,Job引擎以及存儲引擎等等,同時還包括REST服務器以響應客戶端請求。另外,還擴展支持額外功能和特性的插件,同時整合與調度系統、ETL、監控等生命週期管理系統。在Kylin核心之上擴展的第三方用戶界面,ODBC和JDBC驅動用以支持不一樣的工具和產品,如:Tableau。安全
Kylin的架構概述圖以下所示:服務器
圖中的執行流程很清楚,客戶端(REST API或JDBC/ODBC)發送SQL請求,將其交給Kylin的執行引擎去處理,Kylin去拉去對應的數據來作處理,並返回處理結果,這裏Kylin須要依賴HBase。複雜的事情,Kylin的引擎都給咱們處理了,咱們只須要負責去編寫咱們的業務SQL。架構
在Kylin中,咱們能夠處理三維的業務查詢,以下圖所示:框架
在明白了業務處理方向,其生態羣和架構。咱們要如何去集成該系統到Hadoop集羣?關於Kylin的集成過程是比較方便的,Kylin須要Hadoop、Hive、HBase、JDK,另外,對版本也是有要求的。本版要求以下:分佈式
另外,安裝Kylin步驟也是比較簡單的,步驟以下所示:工具
在Kylin啓動以後,咱們能夠經過輸入http://node_hostname:7070/kylin去訪問Kylin,登陸默認用戶名和密碼爲:ADMIN/KYLINoop
預覽截圖以下所示:
另外,咱們能夠經過JDBC去操做,代碼片斷以下所示:
Driver driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance(); Properties info = new Properties(); info.put("user", "ADMIN"); info.put("password", "KYLIN"); Connection conn = driver.connect("jdbc:kylin://dn1:7070/kylin_project_name", info); Statement state = conn.createStatement(); ResultSet resultSet = state.executeQuery("select * from test_table"); while (resultSet.next()) { assertEquals("foo", resultSet.getString(1)); assertEquals("bar", resultSet.getString(2)); assertEquals("tool", resultSet.getString(3)); }
在使用Kylin時,咱們有必要去首先熟悉其架構,這能讓咱們更加熟悉其應用場景和業務場景。在集成和使用的過程中會遇到一些問題,咱們能夠分析其異常日誌,而後利用搜索引擎獲得解決。關於Kylin的詳細使用,你們能夠參考官方撰寫的文檔。
這篇博客就和你們分享到這裏,若是你們在研究學習的過程中有什麼問題,能夠加羣進行討論或發送郵件給我,我會盡我所能爲您解答,與君共勉!