天天看點

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

轉子:http://blog.csdn.net/xgjianstart/article/details/53289870

Apache Kylin是一個開源的分布式分析引擎,提供Hadoop之上的SQL查詢接口及多元分析(OLAP)能力以支援超大規模資料,最初由eBay 開發并貢獻至開源社群。它能在亞秒内查詢巨大的Hive表。

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

Kylin OLAP引擎基礎架構,包括中繼資料(Metadata)引擎,查詢引擎,Job引擎及存儲引擎等,同時包括REST伺服器以響應用戶端請求;

支援額外功能和特性的插件;

與排程系統,ETL,監控等生命周期管理系統的整合;

在Kylin核心之上擴充的第三方使用者界面;

官網位址:http://kylin.apache.org/

提供了主要功能及使用的中文文檔。

Kylin的架構特性

可擴充的超快OLAP引擎,提供标準SQL查詢接口

支援單機或叢集部署,為減少在Hadoop上百億規模資料查詢延遲而設計;

提供标準SQL接口,滿足Hadoop之上的大部分分析查詢需求。

互動式查詢能力,多元立方體(MOLAP Cube)

使用者能夠在Kylin裡為百億以上資料集定義資料模型并建構立方體。

與BI工具及其他應用整合

提供JDBC及ODBC驅動,與BI工具整合。

其他特性

壓縮與編碼;

增量更新;

利用HBase Coprocessor;

基于HyperLogLog的Dinstinc Count近似算法;

友好的web界面以管理,監控和使用立方體;

項目及立方體級别的通路控制安全;

支援LDAP;

Kylin的安裝部署

下載下傳位址:http://kylin.apache.org/download/

apache-kylin-1.5.1-bin.tar.gz

解壓至:/home/liuxiaowen/kylin

安裝部署環境

我這裡使用的相關版本為:

hbase-0.98.6-cdh5.2.0

hadoop-2.3.0-cdh5.0.0

apache-hive-2.0.0-bin

apache-kylin-1.5.1-bin

jdk1.7+

特别注意:Hive應該使用至少0.14以上的版本,我第一次使用0.13.1時候有問題。

另外,請確定Hadoop、HBase、Hive可用,這裡不介紹。

配置環境變量

部署使用的使用者為liuxiaowen

vi ~/.bash_profile

  1. ##HBASE
  2. export HBASE_HOME=/opt/hbase-0.98.6-cdh5.2.0
  3. export HBASE_CONF_DIR=/etc/hbase/conf
  4. ##HADOOP
  5. export HADOOP_HOME=/opt/hadoop-2.3.0-cdh5.0.0
  6. export HADOOP_CONF_DIR=/etc/hadoop/conf
  7. export YARN_CONF_DIR=/etc/hadoop/conf
  8. ##HIVE
  9. export HIVE_HOME=/home/liuxiaowen/apache-hive-2.0.0-bin
  10. export HCAT_HOME=$HIVE_HOME/hcatalog
  11. export HIVE_CONF=$HIVE_HOME/conf
  12. ##KYLIN
  13. export KYLIN_HOME=/home/liuxiaowen/kylin/apache-kylin-1.5.1-bin

重新整理環境變量:

source ~/.bash_profile

配置Kylin使用的Hive資料庫:

cd $KYLIN_HOME/conf

vi kylin.properties

# Hive database name for putting the intermediate flat tables

## 這裡配置在Hive中使用的schema,需要寫權限

kylin.job.hive.database.for.intermediatetable=liuxiaowen

使用HDFS超級使用者在HDFS上為Kylin建立工作目錄,并賦權給liuxiaowen:

hadoop fs -mkdir /kylin

hadoop fs -chown -R liuxiaowen:liuxiaowen /kylin

## 可選,配置Kylin使用的記憶體

$KYLIN_HOME/bin/setenv.sh

檢查環境配置

cd $KYLIN_HOME/bin

./check-env.sh

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

啟動Kylin

cd $KYLIN_HOME/bin

./kylin.sh start

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

登陸Kylin WEB界面

浏覽器輸入:

http://172.16.212.17:7070/kylin

使用者名密碼:ADMIN/KYLIN

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

遇到的幾個問題

都是因為使用了Hive0.13.1引起的:

  1. Caused by: java.lang.IncompatibleClassChangeError:
  2. Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected

hcatalog版本問題,後改為Hive2.0中的hcatalog

export HCAT_HOME=/home/liuxiaowen/apache-hive-2.0.0-bin/hcatalog

  1. java.lang.NoClassDefFoundError: org/apache/hadoop/hive/shims/Utils

Kylin的簡單示例

Kylin中多元分析Cube的建立主要包括以下步驟:

  1. Hive中分析好事實表;
  2. Kylin中建立項目(project);
  3. Kylin中建立資料源;
  4. Kylin中建立資料模型;
  5. Kylin中建立Cube;
  6. Build Cube;
  7. 查詢Cube;

Kylin按照上面的過程,最終将Hive中的事實表按照相應的結構,壓縮并存儲在HBase中。

官網提供了中文文檔,說明了如何在Kylin中建立Cube,非常詳細:

http://kylin.apache.org/cn/docs15/tutorial/create_cube.html

Hive中的事實表

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

事實表lxw1234_kylin_fact中的次元有day、region、city、siteid、os;最終查詢的名額有兩個:PV以及UV(COUNT DISTINCT cookieid)

Kylin中建立資料模型

1. 建立項目lxw1234;

2. 将Hive中的事實表 lxw1234_kylin_fact導入到Kylin資料源:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

3. 建立資料模型lxw1234_dataModel:

選擇次元資料:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

選擇名額資料:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

其他設定:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

資料模型中的日期分區字段貌似是必選的,否則會有問題。

然後儲存。

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

Kylin中建立Cube

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

設計次元:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

設計名額:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

其中,UV使用的COUNT_DISTINCT是近似計算,需要選擇錯誤率,錯誤率越低,占用的存儲越大,Build耗時越長。

其他設定請參考上面給的中文文檔連結,很詳細。

設定好之後儲存。

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

Kylin中Build Cube

在Cube後面的Actions下拉菜單中選擇Build:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

Submit之後,在Monitor頁面中可以看到Build Job的進度和狀态:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

輕按兩下Job Name進入該Job的詳細監控頁:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

Build完成後,在Model頁面可以看到這個Cube已經是READY狀态:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

你可以在HBase中檢視該Cube對應的HTable:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

Kylin中使用SQL查詢

在Insight頁面中使用SQL查詢:

Apache Kylin安裝配置及使用示例 Kylin的架構特性 Kylin的安裝部署 遇到的幾個問題 Kylin的簡單示例

注意:由于DAY是關鍵字,需要使用雙引号。

繼續閱讀