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

2022-02-04 大數據真好玩

點擊上方藍色字體,選擇「設為星標」

回復」資源「獲取更多驚喜

由於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@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集群,故兩個集群此處配置一致。

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

References

[1] https://4vq.cn/UBNzQv

版權聲明:

本文為《大數據真好玩》整理,原作者獨家授權。未經原作者允許轉載追究侵權責任。

文章不錯?點個【在看】吧! 👇

相關焦點

  • Hadoop+Hbase 分布式集群架構「完全篇」
    認識 Hadoop 和 Hbase1.1 Hadoop 簡單介紹Hadoop 是一個使用 Java 編寫的 Apache 開放原始碼框架,它允許使用簡單的編程模型跨大型計算機的大型數據集進行分布式處理。Hadoop 框架工作的應用程式可以在跨計算機群集提供分布式存儲和計算的環境中工作。
  • 如何監控你的Hadoop+Hbase集群?
    的hadoop,如果你是使用原生的Apache Hadoop,那麼也沒關係,原生的Hadoop天生就提供了非常詳細的對接Ganglia的jmx接口,裡面包含了各個核心組件metrics獲取功能,這一點你可以查看hadoop和hbase包括spark的conf下面的metrics文件裡面配置,就能得到驗證。
  • Hadoop Zookeeper Hbase Hive 分布式集群搭建實例
    /dfs/data# mkdir tmp配置集群(Node50)1) /home/hadoop/hadoop-2.7.1/etc/hadoop/core-site.xml<configuration><property>               <name>hadoop.tmp.dir
  • Hadoop 集群安裝與配置
    Apache Hadoop[1] 是一個支持數據密集型分布式應用程式的開源軟體框架,能在大型集群上運行應用程式。Hadoop 框架實現了 MapReduce 編程範式,把應用程式分成許多小部分,每個部分能在任意節點上運行。並且 Hadoop 提供了分布式文件系統存儲所有計算節點的數據,為集群帶來非常高的帶寬。
  • 教你一步一步搭建 Apache HBase 完全分布式集群
    在docker裡面,由於docker容器共享的是宿主機的內核,而修改系統時間是內核層面的功能,因此,在 docker 裡面是無法修改時間(3)配置NTP客戶端在節點hd2、hd3、hd4編輯 /etc/ntp.conf 文件,配置 NPT 客戶端,具體的配置改動項,見以下的中文注釋
  • 0845-7.1.6-集群外配置Kerberos環境的Gateway節點
    1.Cloudera Enterprise 7.3.1和Cloudera Runtime 7.1.62.RedHat 7.63.kerberos版本 1.15.1-34.el_74.OpenLADP 2.4.44-20.el_7集群運行正常且Kerberos已安裝且正常使用IP位址HostName
  • kylin在SHAREit的實踐-kylin完美支持aws glue data catalog
    穩居Google Play全球總榜Top10,目前已經成為印度、印尼、中東、非洲、俄羅斯等國家和地區的「國民應用」。為了滿足公司銷售、廣告運營人員、數據分析師等秒級快速提數及傻瓜報表製作,而又非常友好的給客戶給客戶進行在線演示,那麼基於這兩個硬性條件,於是廣告數據團隊發布了奧丁平臺,通過目前開源的OLAP的框架進行對比,底層的計算引擎採用kylin來實現。
  • 使用Docker運行Apache Kylin,容器化您的OLAP引擎
    Apache Kylin巧妙的設計、獨特的架構,使得它的部署與其它方案相比具有先天優勢:1、只要準備好一臺Hadoop的客戶機,配置好各必需組件的客戶jar和xml配置文件,然後解壓縮Kylin就可以很快運行。2、Kylin的元數據、Cube數據都存儲在Hadoop/HBase集群上,本地服務無狀態,這使得它非常容易動態擴展。
  • Kylin 在 SHAREit 的實踐-Kylin 完美支持 AWS Glue data catalog
    為了滿足公司銷售、廣告運營人員、數據分析師等秒級快速提數及傻瓜報表製作,而又非常友好的給客戶給客戶進行在線演示,那麼基於這兩個硬性條件,於是廣告數據團隊發布了奧丁平臺,通過目前開源的OLAP的框架進行對比,底層的計算引擎採用kylin來實現。我們在測試中發現目前Kylin不支持AWS Glue data catalog。那什麼是AWS Glue ?
  • Hbase協處理器實踐總結(hbase數據同步)
    版本介紹hbase版本:1.2.0es版本:6.8.5hadoop版本:2.6.0話不多說,直接上代碼。有關協處理器了解請參考底部官網連接和相關博客。pom.xml<?;import org.apache.hadoop.hbase.client.Durability;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.coprocessor.BaseRegionObserver;import org.apache.hadoop.hbase.coprocessor.ObserverContext
  • Hbase故障處理匯總及評註
    這個裡面肯定有其他錯誤,面對錯誤,我們不要指盯著一個錯誤,去想解決辦法,我們要多看日誌,找到幾處錯誤,去排除,那個是被引發的錯誤,哪個是是本質的錯誤,也就是引起集群產生其他錯誤的根源。找到這個,我們就有了更好的解決辦法。
  • HBase分布式資料庫
    如下:[2]強讀寫一致,但是不是「最終一致性」的數據存儲,這使得它非常適合高速的計算聚合自動分片,通過Region分散在集群中,當行數增長的時候,Region也會自動的切分和再分配Hadoop/HDFS集成,和HDFS開箱即用,不用太麻煩的銜接豐富的「簡潔,高效」API,Thrift/REST API,Java API操作管理,Hbase提供了內置的web界面來操作,還可以監控JMX指標什麼時候用Hbase
  • 全分布式Hadoop集群搭建
    MapReduce(分布式計算框架)組成。Hadoop集群中分為主機(master)和從機(slave),本文配置一臺阿里雲伺服器為主機和從機。其餘兩臺為從機。HDFS(分布式文件存儲系統)在主機上稱為Namenode節點,在從機上稱為Datanode節點。Namenode維護HDFS的文件系統樹以及文件樹中所有的文件和文件夾的元數據。可以理解為win系統中文件夾屬性中的那些信息,Datanode是存儲和檢索數據的地方。
  • 如何在 Kylin 中優雅地使用 Spark
    將 Gateway 節點上的部署細節以及配置不可避免地暴露給了登陸用戶。2. Livy 優勢一方面,接受並解析用戶的 REST 請求,轉換成相應的操作;另一方面,它管理著用戶所啟動的所有的 Spark 集群。
  • Hadoop學習之路(三)Hadoop集群搭建和簡單應用
    主從結構分類:1、一主多從2、多主多從Hadoop中的HDFS和YARN都是主從結構,主從結構中的主節點和從節點有多重概念方式:1、主節點  從節點2、master  slave3、管理者  工作者4、leader  followerHadoop集群中各個角色的名稱:
  • 基於ZooKeeper搭建Hadoop高可用集群,附大數據入門指南
    共享存儲系統:共享存儲系統是實現 NameNode 的高可用最為關鍵的部分,共享存儲系統保存了 NameNode 在運行過程中所產生的 HDFS 的元數據。主 NameNode 和 NameNode 通過共享存儲系統實現元數據同步。在進行主備切換的時候,新的主 NameNode 在確認元數據完全同步之後才能繼續對外提供服務。
  • ZooKeeper 原理及其在 Hadoop 和 HBase 中的應用
    集群角色在ZooKeeper中,有三種角色:一個ZooKeeper集群同一時刻只會有一個Leader,其他都是Follower或Observer。ZooKeeper配置很簡單,每個節點的配置文件(zoo.cfg)都是一樣的,只有myid文件不一樣。myid的值必須是zoo.cfg中server.
  • Hadoop 集群搭建
    (1)準備基礎設施準備3臺伺服器,分別命名為 master、slave1、slave2互相配置為 SSH 免密碼登錄,並都安裝好 JAVA 環境(2)安裝配置 hadoop在 master 上下載解壓 hadoop,修改相應配置文件,包括:core-site.xml、hdfs-site.xml
  • 大數據之HBase介紹和安裝介紹
    ; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable
  • 第一個"國產"Apache 頂級項目 Kylin,了解一下!| 原力計劃
    因為我們之前用的hbase版本是hbase-1.2.0-cdh5.14的版本,所以在安裝kylin之前,我們需要下安裝hbase 1.1.1版本tar -xvzf hbase-1.1.1><5>修改regionservers,添加其他的節點<6>在hbase conf目錄中創建core-site.xml和hdfs-site.xml軟連接ln -s /export/servers/hadoop-2.6.0-cdh5.14.0/etc