HBase 運行模式

HBase運行模式:獨立式和分佈式

HBase有兩種運行模式:獨立式和分佈式。HBase以獨立模式運行。無論您的模式如何,您都需要通過編輯HBase conf目錄中的文件來配置HBase 。至少,您必須編輯conf/hbase-env.sh來告訴HBase要使用哪個java。在這個文件中,你設置了HBase環境變量,比如JVM的heapsize和其他選項,日誌文件的首選位置等等。設置JAVA_HOME以指向你的java安裝的根目錄。

獨立式HBase

默認情況下使用的是獨立式的HBase。在“快速啟動HBase”一文中,我們已經介紹過獨立模式。在獨立模式下,HBase不使用HDFS,而是使用本地文件系統,是在同一個JVM中運行所有HBase守護進程和本地ZooKeeper。ZooKeeper綁定到一個眾所周知的端口,通過該端口,客戶端可以和HBase進行通信。

獨立於HBFS的HBase

有時在獨立的hbase上有一個有用的變體,它的所有的守護進程都在一個JVM中運行,而不是堅持到本地文件系統,而是堅持到一個HDFS實例。

當您打算使用簡單的部署配置文件時,您可能會考慮使用此配置文件,加載很輕鬆,但是數據必須在節點的出入之間持續存在。向 HDFS 寫入數據的地方可以確保後者。

要配置此獨立變體,請編輯hbase-site.xml,設置hbase.rootdir以指向HDFS實例中的某個目錄,然後將hbase.cluster.distributed設置為false。例如:


HBase 運行模式

分佈式HBase

分佈式模式可以細分為分佈式、偽分佈式(所有守護進程都在單個節點上運行)、完全分佈式(守護進程分佈在集群中的所有節點上)。其中,偽分佈式模式與完全分佈式的命名來自於Hadoop。

偽分佈式模式可以針對本地文件系統運行,也可以針對Hadoop分佈式文件系統(HDFS)的實例運行。完全分佈式模式只能在HDFS上運行。

偽分佈式HBase

偽分佈式模式的HBase就是在單個主機上運行的完全分佈式模式。使用此HBase配置僅進行測試和原型設計。請勿將此配置用於生產或性能評估。

完全分佈式

默認情況下,HBase以獨立模式運行,獨立模式和偽分佈模式用於小規模測試。對於生產環境,建議使用分佈式模式。在分佈式模式下,HBase守護進程的多個實例在集群中的多個服務器上運行。

就像在偽分佈式模式中一樣,完全分佈式的配置要求您將hbase.cluster.distributed屬性設置為true。通常情況下,hbase.rootdir被配置為指向高可用性的HDFS文件系統。

此外,還配置了群集,以便多個群集節點成為RegionServer、ZooKeeper QuorumPeers和備份HMaster服務器。、

分佈式區域服務器(RegionServers)

通常,你的群集將包含多個運行在不同服務器上的RegionServer,以及主要和備份Master和ZooKeeper守護程序。主服務器上的conf/regionservers文件中包含一個主機列表,其RegionServers與該集群相關。每個主機都在一個單獨的行上。當主服務器啟動或停止時,此文件中列出的所有主機將啟動和停止其RegionServer進程。

ZooKeeper和HBase

有關HBase的ZooKeeper設置說明,請參見ZooKeeper部分。

示例 - 分佈式HBase集群示例

這是一個分佈式HBase集群的簡單的conf/hbase-site.xml。用於實際工作的群集將包含更多自定義配置參數。大多數HBase配置指令都具有默認值,除非在hbase-site.xml中覆蓋該值,否則將使用這些默認值。有關更多信息,請參閱“配置文件”。


HBase 運行模式

這是conf/regionservers文件的示例,其中包含應在集群中運行RegionServer的節點的列表。這些節點需要安裝HBase,他們需要使用與主服務器相同的conf /目錄內容:


HBase 運行模式

這是conf/backup-masters文件的示例,其中包含應運行備份主實例的每個節點的列表。除非主主站變為不可用,否則備份主站實例將處於空閒狀態。


HBase 運行模式

分佈式HBase快速入門

請參閱快速入門 - 完全分佈,瞭解包含多個ZooKeeper、備份HMaster和RegionServer實例的簡單三節點群集配置。

HDFS客戶端配置

值得注意的是,如果您在Hadoop集群上進行了HDFS客戶端配置更改(例如,HDFS客戶端的配置指令),而不是服務器端配置,則必須使用以下方法之一來啟用HBase以查看和使用這些配置更改:

  • 在hbase-env.sh中添加一個指向你HADOOP_CONF_DIR的HBASE_CLASSPATH環境變量的指針;
  • 在$ {HBASE_HOME}/conf下添加一個hdfs-site.xml(或hadoop-site.xml)或更好的符號鏈接;
  • 如果只有一小部分HDFS客戶端配置,請將它們添加到hbase-site.xml。

這種HDFS客戶端配置的一個例子是dfs.replication。例如,如果希望以5的複製因子運行,則HBase將創建缺省值為3的文件,除非您執行上述操作以使配置可用於HBase。


分享到:


相關文章: