1. 程式人生 > 實用技巧 >HBase全分散式部署

HBase全分散式部署

HBase全分散式部署

1、HDFS上的獨立HBase

在獨立的hbase上有時有用的變體是,所有守護程式都在一個JVM中執行,而不是持久化到本地檔案系統,而是持久化到HDFS例項。

當您打算使用簡單的部署概要檔案時,可以考慮使用此概要檔案,雖然負載很輕,但是資料必須在節點間來回移動。寫入要複製資料的HDFS可確保後者。

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

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://namenode.example.org:8020/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>false</value>
  </property>
</configuration>

2、完全分佈

預設情況下,HBase以獨立模式執行。提供了獨立模式和偽分散式模式都是為了進行小型測試。對於生產環境,建議使用分散式模式。在分散式模式下,HBase守護程式的多個例項在群集中的多個伺服器上執行。

就像在偽分散式模式下一樣,完全分散式配置需要將hbase.cluster.distributed屬性設定 為true。通常,將hbase.rootdir其配置為指向高度可用的HDFS檔案系統。

此外,還配置了群集,以便多個群集節點可以註冊為RegionServer,ZooKeeper QuorumPeers和備份HMaster伺服器。這些配置基礎都在quickstart-full-distributed中進行了演示。

分散式RegionServer
通常,您的群集將包含都執行在不同伺服器上的多個RegionServer,以及主和備份Master和ZooKeeper守護程式。該CONF / regionservers在主伺服器上的檔案中包含主機,其RegionServers與該叢集相關的列表。每個主機位於單獨的行上。當主伺服器啟動或停止時,此檔案中列出的所有主機都將啟動和停止其RegionServer程序。

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

例子2.例子分散式HBase叢集

這是分散式HBase群集的conf / hbase-site.xml

。用於實際工作的群集將包含更多自定義配置引數。大多數HBase配置指令都有預設值,除非在hbase-site.xml中覆蓋該值,否則將使用預設值。有關更多資訊,請參見“ 配置檔案 ”。

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://namenode.example.org:8020/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>node-a.example.com,node-b.example.com,node-c.example.com</value>
  </property>
</configuration>

這是一個示例conf / regionservers檔案,其中包含應在叢集中執行RegionServer的節點的列表。這些節點需要安裝HBase,並且需要使用與主伺服器相同的conf /目錄內容。

node-a.example.com
node-b.example.com
node-c.example.com

這是示例conf / backup-masters檔案,其中包含應執行備份Master例項的每個節點的列表。除非主主例項不可用,否則備份主例項將處於空閒狀態。

node-b.example.com
node-c.example.com

過程:HDFS客戶端配置

  1. 值得注意的是,如果您在Hadoop叢集上進行了HDFS客戶端配置更改(例如HDFS客戶端的配置指令),而不是伺服器端配置,則必須使用以下方法之一使HBase能夠檢視和使用這些配置更改:
    1. 的一個指標新增HADOOP_CONF_DIRHBASE_CLASSPATH環境變數 hbase-env.sh
    2. $ {HBASE_HOME} / conf下新增hdfs-site.xml(或hadoop-site.xml)或更佳的符號連結的 副本,或
    3. 如果只有一小部分HDFS客戶端配置,請將其新增到hbase-site.xml

這樣的HDFS客戶端配置的示例是dfs.replication。例如,如果要以5的複製因子執行,除非您執行上述操作以使配置可用於HBase,否則HBase將建立預設值為3的檔案。

3、完全分散式安裝

3.1、hbase-env.sh

這裡需要配置好JAVA_HOME變數和指定自己的Zookeeper叢集,把HBASE_MANAGES_ZK指定為false

3.2、hbase-site.xml

<property>
    <name>hbase.rootdir</name>
    <value>hdfs://mycluster/hbase</value>
</property>
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoopNode02,hadoopNode03,hadoopNode04</value>
</property>

3.3、regionservers

hadoopNode02
hadoopNode03
hadoopNode04

3.4、backup-masters

hadoopNode04

3.5、拷貝hdfs.site.xml

$ {HBASE_HOME} / conf下新增hdfs-site.xml(或hadoop-site.xml)或更佳的符號連結的 副本

3.6、分發HBase

> scp -r /opt/mgs/hbase hadoopNode02:/opt/mgs/hbase
> scp -r /opt/mgs/hbase hadoopNode03:/opt/mgs/hbase
> scp -r /opt/mgs/hbase hadoopNode04:/opt/mgs/hbase

3.7、修改profile

新增HBASE_HOME變數

source一下

4、啟動叢集

啟動叢集之前確保自己的hdfs叢集必須啟動起來。

> start-hbase.sh
# 單節點啟動 
> hbase-daemon.sh start master

5、Zookeeper裡面的資料

> zkCli.sh