Ubuntu上HBase集群如何搭建
Ubuntu上搭建HBase集群详细步骤
一、准备工作
1. 环境要求
- 至少3台Ubuntu节点(1主节点+2从节点,如
hadoop100
、hadoop200
、hadoop201
),节点间网络互通(可通过ping
命令验证)。 - 所有节点安装JDK 1.8及以上(HBase依赖Java环境),配置
JAVA_HOME
环境变量(如export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
)。 - 安装并配置Hadoop集群(HBase依赖HDFS存储数据),确保
hadoop
服务正常运行(可通过start-dfs.sh
/stop-dfs.sh
管理)。 - 安装并配置Zookeeper集群(HBase依赖Zookeeper协调分布式服务),确保
zkServer.sh
服务正常运行(可通过zkServer.sh status
查看状态)。 - 所有节点安装
ssh
并配置免密登录(避免启动集群时重复输入密码):
在主节点生成密钥:ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
;
将公钥复制到所有从节点:cat ~/.ssh/id_rsa.pub > > ~/.ssh/authorized_keys
;
分发authorized_keys
到从节点:scp ~/.ssh/authorized_keys hadoop@hadoop200:~/.ssh/
、scp ~/.ssh/authorized_keys hadoop@hadoop201:~/.ssh/
。
2. 下载并解压HBase
在主节点(如hadoop100
)下载HBase安装包(选择与Hadoop版本兼容的HBase版本,如Hadoop 3.x对应HBase 2.4.x),解压到/usr/local
目录:
wget https://downloads.apache.org/hbase/2.4.9/hbase-2.4.9-bin.tar.gz
tar -zxvf hbase-2.4.9-bin.tar.gz -C /usr/local/
mv /usr/local/hbase-2.4.9 /usr/local/hbase # 重命名目录
设置HBASE_HOME环境变量(在/etc/profile
中添加):
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
执行source /etc/profile
使配置生效。
二、配置HBase文件
1. 修改hbase-env.sh
编辑$HBASE_HOME/conf/hbase-env.sh
,设置Java路径并关闭HBase自带Zookeeper(使用外部Zookeeper集群):
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # 根据实际JDK路径修改
export HBASE_MANAGES_ZK=false # 设为false,表示使用外部Zookeeper
若需调整HBase日志或PID目录,可修改HBASE_LOG_DIR
、HBASE_PID_DIR
参数。
2. 配置hbase-site.xml
编辑$HBASE_HOME/conf/hbase-site.xml
,添加以下核心配置(关键参数说明见注释):
<
configuration>
<
!-- 指定HBase以分布式模式运行 -->
<
property>
<
name>
hbase.cluster.distributed<
/name>
<
value>
true<
/value>
<
/property>
<
!-- 指定HBase在HDFS上的存储路径(需与Hadoop core-site.xml中的fs.defaultFS一致) -->
<
property>
<
name>
hbase.rootdir<
/name>
<
value>
hdfs://hadoop100:9000/hbase<
/value>
# 替换为你的Hadoop NameNode地址
<
/property>
<
!-- 指定Zookeeper集群地址(多个节点用逗号分隔) -->
<
property>
<
name>
hbase.zookeeper.quorum<
/name>
<
value>
hadoop100,hadoop200,hadoop201<
/value>
# 替换为你的Zookeeper节点地址
<
/property>
<
!-- 指定Zookeeper数据存储目录 -->
<
property>
<
name>
hbase.zookeeper.property.dataDir<
/name>
<
value>
/usr/local/hbase/zk<
/value>
# Zookeeper数据目录
<
/property>
<
/configuration>
注意:hbase.rootdir
需与Hadoop的core-site.xml
中fs.defaultFS
值一致,hbase.zookeeper.quorum
需与Zookeeper的zoo.cfg
中server.x
值一致。
3. 配置regionservers
编辑$HBASE_HOME/conf/regionservers
,添加所有RegionServer节点(负责存储数据的节点):
hadoop100
hadoop200
hadoop201
若需设置备用Master节点(提高集群高可用),可创建backup-masters
文件(位于conf
目录),添加备用Master节点(如hadoop200
)。
三、分发HBase到从节点
将主节点的HBase目录同步到所有从节点(使用scp
命令,需提前配置免密登录):
scp -r /usr/local/hbase/ hadoop@hadoop200:/usr/local/
scp -r /usr/local/hbase/ hadoop@hadoop201:/usr/local/
确保从节点的HBASE_HOME
环境变量与主节点一致(可通过echo $HBASE_HOME
验证)。
四、启动HBase集群
1. 启动顺序
HBase依赖Hadoop和Zookeeper,启动顺序必须为:Hadoop → Zookeeper → HBase。
- 启动Hadoop集群:在Hadoop主节点执行
start-dfs.sh
(启动HDFS)、start-yarn.sh
(启动YARN)。 - 启动Zookeeper集群:在所有Zookeeper节点执行
zkServer.sh start
(通过zkServer.sh status
验证状态,需有1个Leader、2个Follower)。 - 启动HBase集群:在HBase主节点(
hadoop100
)执行start-hbase.sh
。
2. 验证集群状态
- 查看HBase进程:在任意节点执行
jps
,若输出包含HMaster
(主节点)、HRegionServer
(从节点),说明集群启动成功。 - 访问HBase Web UI:在浏览器输入
http://hadoop100:16010
(主节点IP:16010),可查看集群状态、Region分布等信息。 - 进入HBase Shell:在任意节点执行
hbase shell
,输入status 'simple'
,若返回Cluster is ONLINE
,说明集群正常运行。
五、常见问题排查
- 端口冲突:确保HBase(默认16010)、Zookeeper(默认2181)端口未被占用,可通过
netstat -tulnp | grep 端口号
查看。 - 权限问题:确保HBase目录(如
/usr/local/hbase
)及HDFS存储路径(如/hbase
)有正确的读写权限(可使用chown -R hadoop:hadoop /usr/local/hbase
修改)。 - 版本兼容:HBase与Hadoop版本需兼容(如Hadoop 3.x对应HBase 2.4.x),避免因版本不匹配导致启动失败。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu上HBase集群如何搭建
本文地址: https://pptw.com/jishu/726241.html