Apache Kylin 入門 3 - 安裝與配置

rochy_he發表於2018-10-20

Apache Kylin 入門系列目錄

安裝 Kylin

前面兩篇文章介紹了 Apache Kylin 相關的基本概念以及其工作原理,下面將進入實戰部分,首先就是安裝部署與配置。

大資料環境要求(V2.5.1)

  • Hadoop: 2.7+, 3.1+
  • Hive: 0.13 - 1.2.1+
  • HBase: 1.1+, 2.0
  • Spark (可選) 2.1.1+
  • Kafka (可選) 0.10.0+
  • JDK: 1.8+
  • OS: Linux only, CentOS 6.5+ or Ubuntu 16.0.4+
  • HDP (官方已測試) 2.2 - 2.6 and 3.0
  • CDH (官方已測試) 5.7 - 5.11 and 6.0

大資料環境要求(V2.4.X)

  • Hadoop: 2.7+
  • Hive: 0.13 - 1.2.1+
  • HBase: 1.1+
  • Spark (可選) 2.1.1+
  • Kafka (可選) 0.10.0+
  • JDK: 1.7+
  • OS: Linux only, CentOS 6.5+ or Ubuntu 16.0.4+
  • HDP (官方已測試) 2.2 - 2.6
  • CDH (官方已測試) 5.7 - 5.11

從上述配置可以看到,最新版(V2.5.1)有了諸多的變化,支援了 Hadoop 3.1,HBase 2.0;JDK 需求為 JDK8;CDH 使用者需要注意的是:V2.5 已經支援 CDH 6.0 了

硬體配置

最低配置(官方網站)
  • 4 core CPU
  • 16 GB memory
  • 100 GB disk
推薦配置(KAP 官方文件)
  • 兩路 Intel 至強處理器,6核(或8核)CPU,主頻 2.3GHz 或以上
  • 64GB memory
  • 至少 1 個 1TB 的 SAS 硬碟(3.5寸),7200RPM,RAID1

安裝包檔案目錄說明

  • bin:Kylin 指令碼所在目錄,包括:啟停管理、後設資料管理、環境檢查、建立樣例等指令碼;
  • conf:Kylin 配置檔案所在目錄,包括:Hive、Job、Kylin 執行引數、Kylin Config 等;
  • lib:Kylin JDBC 驅動,HBase Coprocessor 協處理器 jar 所在目錄;
  • meta_backups:Kylin 後設資料備份目錄;
  • sample_cube:官方樣例所依賴的指令碼和資料;
  • sys_cube:系統 Cube 構建所依賴的指令碼;
  • spark:預設為自帶的 spark,圖中是一個軟連線,指向地址為單獨部署的 Spark。

Kylin 目錄

安裝部署 Kylin

詳細步驟可參考官方網站,下面簡單介紹 Kylin 的安裝步驟:

  1. 從官方網站下載合適的版本;
  2. 解壓安裝包,配置環境變數 KYLIN_HOME 指向 Kylin 資料夾;
  3. 檢查 Kylin 執行環境:$KYLIN_HOME/bin/check-env.sh
  4. 啟動 Kylin:$KYLIN_HOME/bin/kylin.sh start
  5. 通過瀏覽器 http://hostname:7070/kylin 檢視,初始使用者名稱和密碼為 ADMIN/KYLIN
  6. 執行 $KYLIN_HOME/bin/kylin.sh stop 即可停止 Kylin。

引數配置

配置檔案一覽

元件名 檔名 描述
Kylin kylin.properties Kylin 使用的全域性配置檔案
Kylin kylin_hive_conf.xml Hive 任務的配置項,在構建 Cube 的第一步通過 Hive 生成中間表時,會根據該檔案的設定調整 Hive 的配置引數
Kylin kylin_job_conf_inmem.xml 包含了 MR 任務的配置項,當 Cube 構建演算法是 Fast Cubing 時,會根據該檔案的設定調整構建任務中的 MR 引數
Kylin kylin_job_conf.xml MR 任務的配置項,當 kylin_job_conf_inmem.xml 不存在,或 Cube 構建演算法是 Layer Cubing 時,會根據該檔案的設定調整構建任務中的 MR 引數
Hadoop core-site.xml Hadoop使用的全域性配置檔案,用於定義系統級別的引數,如HDFS URL、Hadoop臨時目錄等
Hadoop hdfs-site.xml 用於配置HDFS引數,如 NameNode 與 DataNode 存放位置、檔案副本個數、檔案讀取許可權等
Hadoop yarn-site.xml 用於配置 Hadoop 叢集資源管理系統引數,如 ResourceManader 與 NodeManager 的通訊埠,web監控埠等
Hadoop mapred-site.xml 用於配置 MR 引數,如 reduce 任務的預設個數,任務所能夠使用記憶體的預設上下限等
Hbase hbase-site.xml 用於配置 Hbase 執行引數,如 master 機器名與埠號,根資料存放位置等
Hive hive-site.xml 用於配置 Hive 執行引數,如 hive 資料存放目錄,資料庫地址等

Hadoop 引數配置

  • yarn.nodemanager.resource.memory-mb 配置項的值不小於 8192MB
  • yarn.scheduler.maximum-allocation-mb 配置項的值不小於 4096MB
  • mapreduce.reduce.memory.mb 配置項的值不小於 700MB
  • mapreduce.reduce.java.opts 配置項的值不小於 512MB
  • yarn.nodemanager.resource.cpu-vcores 配置項的值不小於 8

kylin.properties 核心引數

配置名 預設值 說明
kylin.metadata.url kylin_metadata@hbase Kylin 後設資料庫路徑
kylin.env.hdfs-working-dir /kylin Kylin 服務所用的 HDFS 路徑
kylin.server.mode all 執行模式,可以是 all,job,query 中的一個
kylin.source.hive.database-for-flat-table default Hive 中間表儲存在哪個 Hive 資料庫中
kylin.storage.hbase.compression-codec none HTable 所採用的壓縮演算法
kylin.storage.hbase.table-name-prefix kylin_ HTable 表名的字首
kylin.storage.hbase.namespace default HTable 預設表空間
kylin.storage.hbase.region-cut-gb 5 region 分割的大小
kylin.storage.hbase.hfile-size-gb 2 hfile 大小
kylin.storage.hbase.min-region-count 1 最小 region 個數
kylin.storage.hbase.max-region-count 500 最大 region 個數
kylin.query.force-limit -1 select *語句強制新增 LIMIT 分句
kylin.query.pushdown.update-enabled false 是否開啟查詢下壓
kylin.query.pushdown.cache-enabled false 開啟查詢是否快取
kylin.cube.is-automerge-enabled true segment 自動合併功能
kylin.metadata.hbase-client-scanner-timeout-period 10000 HBase 掃描資料的超時時間
kylin.metadata.hbase-rpc-timeout 5000 執行 RPC 操作的超時時間
kylin.metadata.hbase-client-retries-number 1 HBase 重試次數

對上述引數的一些說明:

  • kylin.query.force-limit 預設是沒有限制,推薦設定為 1000;
  • kylin.storage.hbase.hfile-size-gb 可以設定為 1,有助於加快 MR 速度;
  • kylin.storage.hbase.min-region-count 可以設定為 HBase 節點數,強制資料分散在 N 個節點;
  • kylin.storage.hbase.compression-codec 預設沒有進行壓縮,推薦在環境執行情況下配置壓縮演算法。

Spark 相關配置

所有使用 kylin.engine.spark-conf. 作為字首的 Spark 配置屬性都能在 $KYLIN_HOME/conf/kylin.properties 中進行管理,當然這些引數支援在 Cube 的高階配置中進行覆蓋。下面是推薦的 Spark 動態資源分配配置:

//執行在yarn-cluster模式,當然可以配置為獨立 Spark 叢集:spark://ip:7077
kylin.engine.spark-conf.spark.master=yarn
kylin.engine.spark-conf.spark.submit.deployMode=cluster 

//啟動動態資源分配
kylin.engine.spark-conf.spark.dynamicAllocation.enabled=true
kylin.engine.spark-conf.spark.dynamicAllocation.minExecutors=2
kylin.engine.spark-conf.spark.dynamicAllocation.maxExecutors=1000
kylin.engine.spark-conf.spark.dynamicAllocation.executorIdleTimeout=300
kylin.engine.spark-conf.spark.shuffle.service.enabled=true
kylin.engine.spark-conf.spark.shuffle.service.port=7337

//記憶體設定
kylin.engine.spark-conf.spark.driver.memory=2G

//資料規模較大或者字典較大時可以調大 executor 記憶體
kylin.engine.spark-conf.spark.executor.memory=4G 
kylin.engine.spark-conf.spark.executor.cores=2

//心跳超時
kylin.engine.spark-conf.spark.network.timeout=600

//分割槽大小
kylin.engine.spark.rdd-partition-cut-mb=100
複製程式碼

Cube Planner 相關配置

Cube Planner 是 V2.3 後新增的新功能,使用該功能可以在 Cube 建立成功後即可看到全部 Cuboid 的數目及組合情況;此外配置成功後,可以看到線上的 Query 與 Cuboid 的匹配情況,使得可以檢視到熱門、冷門甚至沒有使用到的 Cuboid,藉助這些可以指導我們對 Cube 構建進行二次優化;關於 Cube Planner 的使用,可以參考官方文件:kylin.apache.org/cn/docs/tut…

Cube Planner 查詢冷熱 Cuboid

參考文章


Any Code,Code Any!

掃碼關注『AnyCode』,程式設計路上,一起前行。

Apache Kylin 入門 3 - 安裝與配置

相關文章