0%

HBase部署启动

HBase部署与启动全指南

使用的版本为2.2.7

HBase 的部署模式分为单机模式(Standalone)和集群模式(Distributed),本文将详细介绍两种模式的部署步骤、配置要点及常见问题解决方案,帮助读者快速搭建 HBase 环境。

单机模式部署

单机模式适合开发测试环境,部署简单,主要用于功能验证和学习。

环境准备

  • Java 环境:确保已安装 JDK 8+,并配置 JAVA_HOME 环境变量。
  • HDFS 依赖:单机模式下 HBase 可直接使用本地文件系统,但若配置 hbase.rootdir 为 HDFS 路径(如示例),需先启动 Hadoop。

配置文件修改

hbase-env.sh

配置 JDK 路径,关闭 HBase 内置 ZooKeeper(使用独立 ZooKeeper):

1
2
export JAVA_HOME=/usr/1.8  # 替换为实际 JDK 路径  
export HBASE_MANAGES_ZK=false # 启用独立 ZooKeeper(需提前启动)
hbase-site.xml

核心配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<configuration>  
<!-- HBase 数据存储根路径,可使用 HDFS 或本地文件系统 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value> <!-- 若使用本地文件系统,改为 file:///path/to/hbase -->
</property>

<!-- ZooKeeper 数据目录 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/myself/hbase-2.2.7/zkData</value>
</property>

<!-- 单机模式标识 -->
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
</configuration>

启动与验证

启动顺序
1
2
3
4
5
6
7
8
9
10
11
# 若使用 HDFS,先启动 Hadoop  
$ start-dfs.sh

# 启动 HBase(自动启动 HMaster 和 RegionServer)
$ bin/start-hbase.sh

# 验证进程是否正常运行
$ jps
12345 HMaster # HBase 主节点
12346 HRegionServer # HBase 区域服务器
12347 Jps # 进程监控工具
访问 Web UI

通过浏览器访问 http://localhost:16010,查看 HBase 管理界面(仅 HMaster 节点提供)。

进入 HBase Shell
1
2
3
$ bin/hbase shell  
hbase(main):001:0> status # 查看集群状态
hbase(main):002:0> list # 查看所有表

集群模式部署

集群模式适合生产环境,需多台服务器协同工作,提供高可用性和水平扩展能力。

环境准备

  • 服务器规划:建议至少 3 台服务器(1 个 Master,2 个 RegionServer),确保网络互通。
  • ZooKeeper 集群:需提前部署 ZooKeeper 集群(推荐奇数节点,如 3/5 台)。
  • HDFS 集群:HBase 依赖 HDFS 存储数据,需先部署 HDFS 并确保正常运行。

配置文件修改

hbase-env.sh
1
2
3
export JAVA_HOME=/usr/1.8  # 所有节点 JDK 路径需一致  
export HBASE_MANAGES_ZK=false # 使用独立 ZooKeeper 集群
export HBASE_CLASSPATH=/path/to/hadoop/conf # 添加 Hadoop 配置路径
hbase-site.xml

核心配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<configuration>  
<!-- HBase 数据存储根路径,指向 HDFS -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode:9000/hbase</value> <!-- 替换为实际 NameNode 地址 -->
</property>

<!-- ZooKeeper 集群地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>zk1:2181,zk2:2181,zk3:2181</value> <!-- 替换为实际 ZooKeeper 节点 -->
</property>

<!-- ZooKeeper 数据目录 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data/zookeeper</value> <!-- 所有节点路径需一致 -->
</property>

<!-- 集群模式标识 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

<!-- HBase 监听地址(可选) -->
<property>
<name>hbase.master.hostname</name>
<value>master</value> <!-- 主 Master 节点主机名 -->
</property>

<!-- 备份 Master 节点(可选,多个备份 Master 需新增此配置) -->
<property>
<name>hbase.master.backup.masters</name>
<value>backup1:16000,backup2:16000</value> <!-- 备份 Master 节点及端口 -->
</property>
</configuration>
regionservers 文件

指定所有 RegionServer 节点的主机名,每行一个:

1
2
3
slave1  
slave2
slave3
backup-masters 文件(可选)

指定备份 Master 节点(用于高可用):

1
2
backup1  
backup2

同步配置与分发

将配置好的 HBase 目录同步到所有节点:

1
2
3
$ scp -r /path/to/hbase user@slave1:/path/to/  
$ scp -r /path/to/hbase user@slave2:/path/to/
...

启动与验证

启动顺序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 1. 启动 ZooKeeper 集群(所有 ZooKeeper 节点)  
$ zkServer.sh start

# 2. 启动 HDFS 集群(NameNode 节点)
$ start-dfs.sh

# 3. 启动 HBase 集群(主 Master 节点)
$ bin/start-hbase.sh

# 4. 验证进程(所有节点执行 jps)
# 主 Master 节点:
$ jps
12345 HMaster

# RegionServer 节点:
$ jps
12346 HRegionServer

# 备份 Master 节点:
$ jps
12347 HMaster
访问 Web UI
  • 主 Master 管理界面:http://master:16010
  • RegionServer 状态页面:http://regionserver:16030

常见问题与解决方案

1. 启动失败:端口被占用

  • 原因:HBase 默认端口(如 16000/16010/16020 等)被其他进程占用。

  • 解决:修改hbase-site.xml中的端口配置:

    1
    2
    3
    4
    <property>  
    <name>hbase.master.port</name>
    <value>16001</value> <!-- 修改为未被占用的端口 -->
    </property>

2. 集群节点无法通信

  • 原因:防火墙未开放端口或主机名解析失败。
  • 解决
    • 关闭防火墙或开放 HBase 所需端口(如 16000-16030);
    • 确保所有节点 /etc/hosts 文件包含完整的主机名与 IP 映射。

3. HDFS 连接失败

  • 原因:HDFS 配置错误或未启动。
  • 解决
    • 检查 hbase.rootdir 是否与 HDFS 实际地址一致;
    • 执行 hdfs dfs -ls / 验证 HDFS 可正常访问。

4. ZooKeeper 连接异常

  • 原因:ZooKeeper 集群未启动或配置错误。
  • 解决
    • 检查 ZooKeeper 进程状态(zkServer.sh status);
    • 验证 hbase.zookeeper.quorum 配置是否正确。

停止集群

停止 HBase 集群

在主 Master 节点执行:

1
$ bin/stop-hbase.sh  

停止 HDFS 集群

在 NameNode 节点执行:

1
$ stop-dfs.sh  

停止 ZooKeeper 集群

在所有 ZooKeeper 节点执行:

1
$ zkServer.sh stop  

欢迎关注我的其它发布渠道

表情 | 预览
快来做第一个评论的人吧~
Powered By Valine
v1.3.10