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客戶端配置
- 值得注意的是,如果您在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