HBase 完全分布式安装部署
一、Zookeeper 正常部署
首先保证Zookeeper 集群的正常部署,并启动:
[niit@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh start
[niit@hadoop103 zookeeper-3.4.10]$ bin/zkServer.sh start
[niit@hadoop104 zookeeper-3.4.10]$ bin/zkServer.sh start
二、Hadoop 正常部署
Hadoop 集群的正常部署并启动:
[niit@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh
[niit@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh
三、HBase 的解压
解压Hbase 到指定目录:
[niit@hadoop102 software]$ tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt/module
四、HBase 的配置文件
修改HBase 对应的配置文件。加上HBASE的环境变量
1. hbase-env.sh 修改内容:
export JAVA_HOME=/opt/module/jdk1.6.0_144
export HBASE_MANAGES_ZK=false
2.hbase-site.xml 修改内容:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop102:9000/HBase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 -->
<property>
<name>hbase.master.port</name>
<value>16010</value>
</property>
<!-- 在分布式的情况下一定要设置,不然容易出现Hmaster起不来的情况 -->
<property> <name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.4.10/zkData</value>
</property>
</configuration>
3.regionservers:(自己hadoop集群的主机名称)
hadoop102
hadoop103
hadoop104
4.软连接hadoop 配置文件到HBase:
[niit@hadoop102 module]$ ln -s /opt/module/hadoop- 2.7.2/etc/hadoop/core-site.xml /opt/module/hbase/conf/core- site.xml
[niit@hadoop102 module]$ ln -s /opt/module/hadoop- 2.7.2/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs- site.xml
五、HBase 远程发送到其他集群(或使用scp命令分发)
[niit@hadoop102 module]$ xsync hbase/
HBase 服务的启动
[niit@hadoop102 hbase]$ bin/start-hbase.sh
对应的停止服务:
[niit@hadoop102 hbase]$ bin/stop-hbase.sh
六、查看HBase 页面
但是,发现启动后,访问不了页面,jps查看发现没有hmaster进程,步骤没错
应该是配置文件出了问题,我的hadoop版本是3.1.3,hbase版本是2.2.4,是兼容的
修改配置文件为:
![](https://i-blog.csdnimg.cn/blog_migrate/b2c0640f23f75ed594ed06afc79c51ed.png)
修改完毕后分发给其他主机,重新启动,就成功了;
具体配置文件:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop102:8020/HBase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<!-- 在分布式的情况下一定要设置,不然容易出现Hmaster起不来的情况 -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop102,hadoop103,hadoop104</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.5.7/zkData</value>
</property>
</configuration>