多套Kylin集羣共享Hbase和Hadoop計算集羣關鍵配置最佳實踐

由於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

 kylin.metadata.url :指定元數據存儲方式和路徑。兩個Kylin集羣的此配置一定要**不相同**,值的格式爲:namespace:tablename@store_type。此配置分爲兩部分,@爲分隔符:
  (1)、@後的部分表示此Kylin集羣使用什麼作爲存儲,可以配置爲:hbase、hdfs、ifile、jdbc。咱們用hbase,所以咱們後部分固定爲@hbase。
  (2)、@前的部分有至少如下幾個用途:
  		a、Kylin集羣的元數據在hbase中的存儲表以及表對應的namespace,namespace可以不配配置,不配做則爲tablename@hbase;
  		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:kylin_cluster01_meadata@hbase
   	 kylin-cluster02:
   		kylin.metadata.url=BIGDATA_KYLIN:kylin_cluster02_meadata@hbase

kylin.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集羣,故兩個集羣此處配置一致。
  • 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.jar 

kylin.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集羣運維有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章