1 前提
1.1保证Zookeeper正常部署
首先保证Zookeeper集群的正常部署,试启动:(不需要启动下部署Hbase)
bin/zkServer.sh start
1.2保证 Hadoop正常部署
Hadoop集群的正常部署试启动:(不需要启动下部署Hbase)
sbin/start-dfs.sh
sbin/start-yarn.sh
1.3 HBase的解压(hbase-1.3.1-bin.tar.gz)
解压HBase到指定目录:
tar -zxvf /opt/software/hbase-1.3.1-bin.tar.gz -C /opt/en
2. HBase的配置文件(进入Hbase的conf)
修改HBase对应的配置文件。
2.1 hbase-env.sh修改内容:
vim /opt/en/hbase-1.3.1/conf/hbase-env.sh
export JAVA_HOME=/opt/en/jdk1.8.0_144
export HBASE_MANAGES_ZK=false
并注释掉:
2.2 hbase-site.xml修改内容:
vim /opt/en/hbase-1.3.1/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop0: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>16000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop0,hadoop1,hadoop2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/en/zookeeper-3.4.10/zkData</value>
</property>
</configuration>
2.3 替换regionservers里的内容:
vim /opt/en/hbase-1.3.1/conf/regionservers
Hadoop0
Hadoop1
Hadoop2
3.HBase远程发送到其他集群
# 分发至hadoop1
rsync -av /opt/en/hbase-1.3.1/ root@hadoop1:/opt/en/hbase-1.3.1/
# 分发至hadoop2
rsync -av /opt/en/hbase-1.3.1/ root@hadoop2:/opt/en/hbase-1.3.1/
4. HBase服务的启动
4.1启动Hadoop和zookeeper
Zookeeper正常启动:
zk-cluster.sh start
Hadoop正常部署启动:
hadoop-cluster.sh start
4.2三台节点时间同步
第一步:sudo yum install ntp ntpdate -y --disablerepo="*" --enablerepo="base" --setopt="base.baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/"
第二步:ntpdate cn.pool.ntp.org
4.3:单启
前提:

执行:
[root@hadoop105 hbase]# bin/hbase-daemon.sh start master

[root@hadoop105 hbase]# bin/hbase-daemon.sh start regionserver
4.4启动方式2:群起
[root@hadoop105 hbase]# /opt/en/hbase-1.3.1/bin/start-hbase.sh

对应的停止服务:
[root@hadoop105 hbase]# /opt/en/hbase-1.3.1/bin/stop-hbase.sh
4.5关闭
4.6 查看HBase页面
启动成功后,可以通过“host:port”的方式来访问HBase管理页面,例如:
http://hadoop0:16010
5、控制脚本
#!/bin/bash
# HBase安装路径
HBASE_HOME="/opt/en/hbase-1.3.1"
# 检查HBase安装目录是否存在
if [ ! -d "$HBASE_HOME" ]; then
echo "Error: HBase installation directory not found: $HBASE_HOME"
exit 1
fi
# 启动HBase
start() {
echo "Starting HBase..."
"${HBASE_HOME}/bin/start-hbase.sh"
}
# 停止HBase(先正常停止,再检查残留进程)
stop() {
echo "Stopping HBase..."
"${HBASE_HOME}/bin/stop-hbase.sh"
# 检查并强制终止残留进程
sleep 2
local pids=$(jps 2>/dev/null | grep -Ew 'HMaster|HRegionServer' | awk '{print $1}')
if [ -n "$pids" ]; then
echo "Force killing remaining processes..."
kill -9 $pids 2>/dev/null
fi
}
# 检查服务状态
status() {
local pids=$(jps 2>/dev/null | grep -Ew 'HMaster|HRegionServer')
if [ -n "$pids" ]; then
echo "HBase is running"
echo "$pids"
else
echo "HBase is not running"
fi
}
# 重启服务
restart() {
stop
sleep 3
start
}
# 参数处理
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit 0
使用说明:
- 保存脚本为
hbase-ctl.sh
- 赋予执行权限:
chmod +x hbase-ctl.sh
mv hbase-ctl.sh /usr/local/bin
功能说明:
# 启动
hbase-ctl.sh start
# 停止
hbase-ctl.sh stop
# 查看状态
hbase-ctl.sh status
# 重启
hbase-ctl.sh restart
- 启动时会调用HBase原生的
start-hbase.sh
- 停止时会先尝试正常停止,2秒后检查残留进程并强制终止
- 状态检查通过
jps
命令查看HMaster/HRegionServer进程 - 添加了安装目录存在性检查
- 所有HBase命令输出会被静默处理(如需查看详细信息可移除
2>/dev/null
)