最近开始接触hbase,就从hbase完全分布式搭建开始记录一下。hbase完全分布式的搭建基于hadoop ha搭建基础上,hadoop ha搭建见:Hadoop MapReduce HA搭建


  • 1 规划
  • 2 解压hbase
  • 3 配置
  • 3.1 配置hbase_home
  • 3.2 配置java_homey以及外部使用的zk
  • 3.3 配置 regionservers
  • 3.4 配置backup master
  • 3.5 配置zookeeper
  • 3.6 配置hdfs
  • 4 拷贝安装文件
  • 5 启动hbase集群
  • 6 验证
  • 6.1进程验证
  • 6.2 hbase web
  • 6.3验证hbase高可用


1 规划

主机

node2

node3

node4

node5

节点

Master

Master Backup

节点

ZooKeper

ZooKeper

ZooKeper

节点

RegionServer

RegionServer

RegionServer

2 解压hbase

在node2上,将hbase 安装包解压到/opt/app目录

cd  /opt/app
tar -zxvf /apps/hbase-0.98.12.1-hadoop2-bin.tar.gz

3 配置

3.1 配置hbase_home

在node2、node3、node4、node5上/etc/profile 文件上都添加如下内容

export HBASE_HOME=/opt/app/hbase-0.98.12.1-hadoop2
export PATH=$PATH:$HBASE_HOME/bin

hbase完全分布式的搭建_xml

然后使用配置生效

source  /etc/profile

hbase完全分布式的搭建_hbase_02

3.2 配置java_homey以及外部使用的zk

vim /opt/app/hbase-0.98.12.1-hadoop2/conf/hbase-env.sh

添加入下内容

export JAVA_HOME=/usr/java/default
export HBASE_MANAGES_ZK=false

3.3 配置 regionservers

vim /opt/app/hbase-0.98.12.1-hadoop2/conf/regionservers

添加如下内容

node3
node4
node5

3.4 配置backup master

在HBASE_HOME目录添加文件backup-masters,

vim backup-masters

并添加如下内容

node3

3.5 配置zookeeper

habse_home/conf/hbase-site.xml中配置zookeeper的信息。hbase会优先使用zoo.cfg的配置。在hbase-site.xml中配置如下:
vim /opt/app/hbase-0.98.12.1-hadoop2/conf/hbase-site.xml

<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
<property>
  <name>hbase.rootdir</name>
  <value>hdfs://mycluster/hbase</value>
</property>
<property>
  <!-- 默认端口号可以不写,也可以添加:node2:2181,node3:2181,node4:2181 -->
  <name>hbase.zookeeper.quorum</name>
  <value>node3,node4,node5</value>
</property>
<property>

hbase完全分布式的搭建_zookeeper_03

3.6 配置hdfs

将hadoop的hdfs-site.xml拷贝到$HBASE_HOME/conf目录下
在hbase_home/conf 路径下

cp /opt/app/hadoop-2.6.5/etc/hadoop/hdfs-site.xml  .

4 拷贝安装文件

进入/opt/app路径
把hbase安装包拷贝到node3,node4,node5上
scp -r hbase-0.98.12.1-hadoop2 node3:pwd && scp -r hbase-0.98.12.1-hadoop2 node4:pwd && scp -r hbase-0.98.12.1-hadoop2 node5:pwd

5 启动hbase集群

启动hbase集群前需要确保没有任意一个节点运行hbase以及确保zookeeper集群正常运行,如果没有运行,则运行zookeeper
在node2上启动habse,则node2为hmaster

start-hbase.sh

停止命令为 stop-hbase.sh 任意一台都可以执行

hbase完全分布式的搭建_hadoop_04

6 验证

6.1进程验证

启动后在node2上通过进程可以看到hmaster 在node2上

hbase完全分布式的搭建_hadoop_05

node3上

hbase完全分布式的搭建_xml_06


node4上

hbase完全分布式的搭建_hadoop_07

node5上

hbase完全分布式的搭建_hbase_08

6.2 hbase web

http://node2:60010/hbase完全分布式的搭建_hbase_09
Backup Masters
hbase完全分布式的搭建_hbase_10
hbase完全分布式的搭建_zookeeper_11

6.3验证hbase高可用

在6.1图中知道hmaster进程在node2上id为5549.

kill进程模仿宕机

hbase完全分布式的搭建_xml_12

此时http://node2:60010/ 已经不能访问

只能访问http://node3:60010/

在这里插入图片描述

hbase完全分布式的搭建_zookeeper_13

我们在node5上启动HMaster

hbase-daemon.sh start master

hbase完全分布式的搭建_hbase_14


启动后发现Backup Masters已经不在是空,而是切换为node5了

hbase完全分布式的搭建_hbase_15


当我们 在页面输入http://node5:60010/,结果如下

hbase完全分布式的搭建_hbase_16