點擊上方藍色字體,選擇「設為星標」
回復」資源「獲取更多驚喜
由於Kylin的本身架構(廣播特性)和業務特點通常不適用於單套Kylin集群的節點過多,通常大家採用拆分Kylin集群但是共用底層的Hbase集群和計算集群的方式進行部署。本文主要根據目前咱們的實踐經驗對於此種場景集群配置進行分享,希望對大家有所幫助。
Kylin的版本為社區上最新的3.x版本。
一、部署環境•Kylin集群:
當前有兩套Kylin集群(kylin-cluster01,kylin-cluster02);
•部署方式:
(1)採用計算集群和存儲集群分離的方式進行部署
(2)這兩套Kylin集群均使用同一套存儲集群(Hbase01),即兩個Kylin集群共用一套HBase集群
(3)這兩套Kylin集群均使用同一套計算集群(Hadoop01),即兩套Kylin集群均使用同一套計算Hadoop集群
二、配置Kylin集群的配置主要是配置在$KYLIN_HOME/conf/kylin.properties文件, 本文所述的配置均是在此配置文件中配置,$KYLIN_HOME為Kylin的安裝目錄。
HBase存儲相關配置kylin.metadata.url=BIGDATA_KYLIN:kylin_meadata@hbase tablename一定不要與kylin.storage.hbase.table-name-prefix中的前綴配置一樣,否則使用tool刪除將會刪除meta表
kylin.metadata.url :指定元數據存儲方式和路徑。兩個Kylin集群的此配置一定要**不相同**,值的格式為:namespace:tablename@store_type。此配置分為兩部分,@為分隔符:
(1)、@後的部分表示此Kylin集群使用什麼作為存儲,可以配置為:hbase、hdfs、ifile、jdbc。咱們用hbase,所以咱們後部分固定為@hbase。
(2)、@前的部分有至少如下幾個用途:
a、Kylin集群的元數據在hbase中的存儲表名以及表對應的namespace,namespace可以不配配置,不配做則為tablename@hbase,這個tablename一定不要與kylin.storage.hbase.table-name-prefix中的前綴一樣,否則使用工具類刪除數據的時候可能會誤刪除meta表;
b、與kylin.env.hdfs-working-dir的值拼接成計算集群和存儲集群的Kylin HDFS工作目錄,拼接方式為:ylin.env.hdfs-working-dir的值+」/「+ @之前的部分(冒號 :變為中橫線 —) ;
c、與kylin.env.hdfs-metastore-bigcell-dir拼接為bigcell-dir的存儲路徑,拼接方式為:kylin.env.hdfs-metastore-bigcell-dir的值+」/「+ @之前的部分(冒號 :變為中橫線 —);
d、如果kylin.server.cluster-name 集群名沒有設置值,則@前面部分還會作為cluster-name的值。
(3)、配置例子:
kylin-cluster01:
kylin.metadata.url=BIGDATA_KYLIN:kylin01_meadata@hbase
kylin-cluster02:
kylin.metadata.url=BIGDATA_KYLIN:kylin02_meadata@hbasekylin.env.hdfs-metastore-bigcell-dir=/user/prod_kylin/kylin_engine2/
kylin.env.hdfs-metastore-bigcell-dir是大的字典存儲的目錄,所以一定要配置一個Hbase集群的某個HDFS目錄。如果此配置不配,將會從kylin.env.hdfs-working-dir獲取值但是會將schemal替換成存儲集群(hbase)的schemal
兩個Kylin集群不要配成一樣的目錄。kylin.storage.hbase.cluster-fs=hdfs://storagepre/hbase
kylin.storage.hbase.cluster-fs 指明 HBase 集群hbase存儲的 HDFS 根目錄值為hbase-site.xml中「hbase.rootdir」的值。
因為共用一個HBbase集群,故兩個集群此處配置一致。kylin.storage.hbase.namespace=BIGDATA_KYLIN kylin.storage.hbase.table-name-prefix=KYLIN_
(1)、定義:
kylin.storage.hbase.namespace 指明應在hbase中table的namsespace,建議每個kylin集群配置不一樣
kylin.storage.hbase.table-name-prefix 指明segment對應在hbase中table name的前綴,建議每個kylin集群配置不一樣。
(2)、配置例子:
kylin-cluster01 :
kylin.storage.hbase.namespace=BIGDATA_KYLIN01
kylin.storage.hbase.table-name-prefix=KYLIN01_
kylin-cluster02 :
kylin.storage.hbase.namespace=BIGDATA_KYLIN02
kylin.storage.hbase.table-name-prefix=KYLIN02_
Hadoop計算集群相關配置kylin.env.hdfs-working-dir=hdfs://ns00/user/kylin/kylin_engine/
(1)、 定義:
- kylin.env.hdfs-working-dir 指定 Kylin 服務所用的 HDFS 路徑,每個Kylin集群的此配置值也儘量不要相同。當然每個集群真實的工作目錄還會拼接上 kylin.storage.hbase.cluster-fs的值,參考kylin.storage.hbase.cluster-fs配置。配置相同對集群運維可能會造成一些不必要的麻煩。
- kylin.env.hdfs-working-dir可能還會作為kylin.env.hdfs-metastore-bigcell-dir值,如果kylin.env.hdfs-metastore-bigcell-dir沒有配置值的話,但是會把schemal自動換成存儲集群的。
(2)、配置例子:
kylin-cluster01 配置的值可為 hdfs://ns00/user/kylin/kylin_cluster01/
kylin-cluster02 配置的值可為 hdfs://ns00/user/kylin/kylin_cluster02/kylin.engine.livy-conf.livy-key.file=hdfs://ns00/user/kylin/kylin_engine/BIGDATA_KYLIN-kylin_meadata_test/livy/kylin-job-3.0.0-1-SNAPSHOT.jar
(1)、定義:
kylin.engine.livy-conf.livy-key.file 當需要使用spark livy 構建時,配置kylin 構建jar包在HDFS上的位置。此處的jar包配置需要每個集群互不影響,配置不同的目錄,否則升級會互相影響,不用spark livy構建可以忽略此配置。
(2)、配置例子:
kylin-cluster01 配置的值可為 hdfs://ns00/user/kylin/kylin_cluster00/ /BIGDATA_KYLIN-kylin_meadata_test/livy/kylin-job-3.0.0-1-SNAPSHOT.jar
kylin-cluster02 配置的值可為 hdfs://ns00/user/kylin/kylin_cluster02/ /BIGDATA_KYLIN-kylin_meadata_test/livy/kylin-job-3.0.0-1-SNAPSHOT.jarkylin.source.hive.database-for-flat-table=bigdata_kylin kylin.source.hive.databasedir-for-flat-table=hdfs://ns00/user/prod_kylin/kylin/hive/bigdata_kylin
(1)、定義:
a、kylin.source.hive.database-for-flat-table為構建時flat-table的hive database name,兩個集群需要使用不同的database;
b、kylin.source.hive.databasedir-for-flat-table 對應的hive database在hdfs上的路徑,根據實際路徑填寫,由於database不同,此路徑肯定也不相同。
(2)、配置例子:
kylin-cluster01 :
kylin.source.hive.database-for-flat-table=bigdata_kylin01
kylin.source.hive.databasedir-for-flat-table=hdfs://ns00/user/prod_kylin/kylin/hive/bigdata_kylin01
kylin-cluster02 :
kylin.source.hive.database-for-flat-table=bigdata_kylin02
kylin.source.hive.databasedir-for-flat-table=hdfs://ns00/user/prod_kylin/kylin/hive/bigdata_kylin02
Zookeeper相關配置kylin.env.zookeeper-base-path=/kylin
(1)、定義:
kylin.env.zookeeper-base-path Kylin 服務所用的 ZooKeeper 父路徑,默認值為 /kylin,兩個集群一定要不相同相同,否則運維起來比較麻煩。另外每個集群真實的zookeeper的路徑還會拼接上kylin.server.cluster-name的值。
(2)、配置例子:
kylin-cluster01 :
kylin.env.zookeeper-base-path=/kylin01
kylin-cluster02 :
kylin.env.zookeeper-base-path=/kylin02
Kylin集群相關配置kylin.server.cluster-name=BIGDATA_KYLIN:kylin_meadata
(1)、定義:
Kyllin集群的名稱,如果不配做則獲取kylin.metadata.url @前半部分的值,建議明確配置且每個集群配置不要一樣。此值除了會作為集群名稱標識外,還會作為zookeeper的一部分具體見kylin.env.zookeeper-base-path配置。
(2)、配置例子:
kylin-cluster01 :
kylin.server.cluster-name=BIGDATA_KYLIN:kylin_cluster01_meadata
kylin-cluster02 :
kylin.server.cluster-name=BIGDATA_KYLIN:kylin_cluster02_meadata後續在持續更新其他配置,上面的這些配置是在多Kylin集群共享同一個Hbase存儲和Hadoop集群時需要注意的配置,希望對大家Kylin集群運維有所幫助。
References
[1] https://4vq.cn/UBNzQv
版權聲明:
本文為《大數據真好玩》整理,原作者獨家授權。未經原作者允許轉載追究侵權責任。文章不錯?點個【在看】吧! 👇