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