Apache Kylin目錄詳解

一、Kylin二進制源碼目錄解析

  • bin: shell 腳本,用於啟動/停止Kylin,備份/恢復Kylin元數據,以及一些檢查端口、獲取Hive/HBase依賴的方法等;
  • conf: Hadoop 任務的XML配置文件,這些文件的作用可參考配置頁面
  • lib: 供外面應用使用的jar文件,例如Hadoop任務jar, JDBC驅動, HBase coprocessor 等.
  • meta_backups: 執行 bin/metastore.sh backup 後的默認的備份目錄;
  • sample_cube 用於創建樣例 Cube 和表的文件。
  • spark: 自帶的spark。
  • tomcat: 自帶的tomcat,用於啟動Kylin服務。
  • tool: 用於執行一些命令行的jar文件。

二、HDFS 目錄結構

Kylin 會在 HDFS 上生成文件,根目錄是 “/kylin” (可以在conf/kylin.properties中定製),然後會使用 Kylin 集群的元數據表名作為第二層目錄名,默認為 “kylin_metadata”。

通常,/kylin/kylin_metadata目錄下會有這麼幾種子目錄:cardinality, coprocessor, kylin-job_id, resources, jdbc-resources.

  1. cardinality:Kylin 加載 Hive 表時,會啟動一個 MR 任務來計算各個列的基數,輸出結果會暫存在此目錄。此目錄可以安全清除。各個列的基數計算如下圖所示:
Apache Kylin目錄詳解

  1. coprocessor:Kylin用於存放HBase coprocessor jar的目錄;請勿刪除。
  2. kylin-job_id:Cube 計算過程的數據存儲目錄,請勿刪除。 如需要清理,請遵循:http://kylin.apache.org/cn/docs/howto/howto_cleanup_storage.html. 在構建Cube過程中,會在該目錄下生成中間文件,如下圖所示:
Apache Kylin目錄詳解

  1. 如果cube構建成功,該目錄會自動刪除;如果cube構建失敗,需要手動刪除該目錄。
  2. resources:Kylin 默認會將元數據存放在 HBase,但對於太大的文件(如字典或快照),會轉存到 HDFS 的該目錄下,請勿刪除。如需要清理,請遵循:http://kylin.apache.org/cn/docs/howto/howto_backup_metadata.html
  3. jdbc-resources:性質同上,只在使用 MySQL 做元數據存儲時候出現。

執行Kylin官方自帶的sample.sh文件,會將數據都臨時加載到/tmp/kylin/sample_cube文件中,等到腳本執行完畢,會將該目錄刪除。

三、Zookeeper存儲

Kylin啟動成功後,會在Zookeeper中註冊/kylin的Znode節點,裡面包含job_engine與create_htable的Znode節點,其中create_htable與HBase服務有關。

Apache Kylin目錄詳解

四、Hive表

Kylin的數據來源於Hive數據庫。在構建cube的時候,會在Hive數據庫中生成中間表,如果cube構建成功,中間表會被刪除;如果cube構建失敗,中間表就會被遺留在Hive中,需要手動執行命令清理。

Apache Kylin目錄詳解

五、HBase表

kylin中有大量的元數據信息,包括cube的定義,星狀模型的定義、job的信息、job的輸出信息、維度的directory信息等等,元數據和cube都存儲在hbase中,其中元數據默認存儲在hbase的kylin_metadata表裡面,存儲的格式是json字符串。

當清理/刪除/合併cube時,一些HBase表可能被遺留在HBase表。如果需要清理,請參考:http://kylin.apache.org/cn/docs/howto/howto_cleanup_storage.html。


--END--

碼字不易,如果您覺得文章寫得不錯,請關注作者~ 您的關注是我寫作的最大動力

友情提示:原文排版精美,可點擊分享鏈接查看。


分享到:


相關文章: