前面我们已经配置过了伪分布式的HBase集群,主要是为了学习方便,如果我们有条件或者要上在测试环境搭建集群我们肯定不能搭一个伪分布式的集群了事吧。这篇文章我们就来看一下如何搭建完全分布式的HBase集群。
我们搭建完全分布式HBase集群的前提是:
- Zookeeper集群正常
- Hadoop集群正常
其中Zookeeper集群的配置和Hadoop集群的配置 我们前面也有讲过,大家可以参考一下。
HBase的分布式集群配置也非常简单,修改hbase-site.xml与regionservers文件即可。大家可以查看官方示例。
假设我们有五台机器,分别为namenode-1,namenode-2,datanode-1,datanode-2,datanode-3。在这五台机器上配置了高可用的hadoop集群。
同时在datanode1,2,3上面部署了zookeeper集群。
我们现需要将HBase集群进行安装部署,datanode1,2,3为RegionServer,namenode-1为HMaster。那么我们的集群应该如何配置呢?
HBase的hbase-env.sh内的配置大家参考前面HBase伪分布式集群文章,并且将hadoop的hdfs-site.xml和core-site.xml拷贝到hbase的conf目录。我们主要看一下hbase-site.xml的配置。
<configuration>
<!-- hbase 在hdfs的root目录 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://clustername/hbase</value>
</property>
<!-- hbase 是否为分布式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- hbase zookeeper集群相关配置 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>datanode-1:2181,datanode-2:2181,datanode-3:2181</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/hadoop/hbase-1.2.4/tmp</value>
</property>
</configuration>
大家可以看到,hbase-site.xml跟之前的配置大同小异。然后我们修改regionservers文件(相当于hadoop的slaves文件)
datanode-1
datanode-2
datanode-3
然后我们在namenode上启动hbase即可:
bash start-hbase.sh
我们在哪台机器上启动HBase,哪台机器节点就是HMaster,如果我们需要额外启动其他master怎么办呢?
bash hbase-daemon.sh start master
注:本文介绍的相关配置均为最小配置,其他大家可以访问HBase官网查看详细内容。