阅读量:3
Ubuntu环境下HBase集群搭建指南
一、准备工作
1. 系统要求
- 操作系统:Ubuntu 20.04及以上(推荐64位版本);
- 硬件配置:每节点至少4核CPU、8GB内存、100GB存储(生产环境建议16GB+内存);
- 网络要求:所有节点处于同一局域网,能互相通信(关闭防火墙或开放必要端口,如SSH的22端口、HBase的16000/16010端口、ZooKeeper的2181端口)。
2. 软件依赖
- Java:HBase依赖JDK 1.8及以上(推荐OpenJDK),需配置
JAVA_HOME环境变量; - Hadoop:若使用HDFS作为存储层,需提前部署Hadoop集群(版本兼容,如HBase 2.5.x适配Hadoop 3.x);
- SSH:用于Master节点与RegionServer节点的无密码登录,简化集群管理。
3. 节点规划
- Master节点:1台(负责集群管理,如元数据维护、Region分配);
- RegionServer节点:至少2台(负责数据存储与读写,可根据数据量横向扩展);
- ZooKeeper集群:建议3台(HBase依赖ZooKeeper管理集群状态,奇数节点保证高可用)。
二、环境配置
1. 安装Java
在所有节点执行以下命令安装OpenJDK 8:
sudo apt update
sudo apt install -y openjdk-8-jdk
# 验证安装
java -version # 应输出Java 1.8.x版本信息
2. 安装SSH并配置免密登录
在Master节点生成SSH密钥,并分发公钥到所有RegionServer节点:
# 生成密钥(默认保存在~/.ssh/id_rsa)
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
# 分发公钥到RegionServer节点(替换为用户和IP)
ssh-copy-id user@regionserver1_ip
ssh-copy-id user@regionserver2_ip
# 测试免密登录
ssh user@regionserver1_ip # 应无需密码直接登录
ssh user@regionserver2_ip
3. 安装Hadoop(可选,若使用HDFS)
若需将HBase数据存储在HDFS上,需提前部署Hadoop集群:
# 下载并解压Hadoop(以3.3.6为例)
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/
# 配置Hadoop核心文件(core-site.xml、hdfs-site.xml等)
# 启动Hadoop集群
hadoop namenode -format # 格式化NameNode
start-dfs.sh # 启动HDFS
start-yarn.sh # 启动YARN(可选)
三、下载与解压HBase
在Master节点下载HBase(以2.5.7为例),并解压到指定目录:
# 下载HBase
wget https://dlcdn.apache.org/hbase/2.5.7/hbase-2.5.7-bin.tar.gz
# 解压到/usr/local/
tar -xzvf hbase-2.5.7-bin.tar.gz -C /usr/local/
# 创建软链接(可选,方便后续操作)
ln -s /usr/local/hbase-2.5.7 /usr/local/hbase
# 配置环境变量
echo 'export HBASE_HOME=/usr/local/hbase' >> ~/.bashrc
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> ~/.bashrc
source ~/.bashrc # 使环境变量生效
四、配置HBase核心文件
进入HBase的conf目录,修改以下配置文件:
1. hbase-site.xml(核心配置)
<configuration>
<property>
<name>hbase.rootdirname>
<value>hdfs://namenode_ip:9000/hbasevalue>
property>
<property>
<name>hbase.cluster.distributedname>
<value>truevalue>
property>
<property>
<name>hbase.zookeeper.quorumname>
<value>master_ip,regionserver1_ip,regionserver2_ipvalue>
property>
<property>
<name>hbase.zookeeper.property.dataDirname>
<value>/usr/local/zookeeper/datavalue>
property>
<property>
<name>hbase.hregion.max.filesizename>
<value>20Gvalue>
property>
<property>
<name>hbase.hregion.memstore.flush.sizename>
<value>256Mvalue>
property>
configuration>
2. hbase-env.sh(环境配置)
# 设置HBase最大堆内存(根据节点内存调整,如Master用8GB,RegionServer用16GB)
export HBASE_HEAPSIZE=16G
# 关闭HBase自带的ZooKeeper(若使用独立集群)
export HBASE_MANAGES_ZK=false
# 配置Master和RegionServer的JVM参数(可选)
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xmx8G -Xms8G"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xmx16G -Xms16G"
3. regionservers(RegionServer列表)
在conf目录下创建或修改regionservers文件,添加所有RegionServer节点的IP或主机名:
regionserver1_ip
regionserver2_ip
五、启动HBase集群
1. 启动ZooKeeper(若使用独立集群)
在所有RegionServer节点启动ZooKeeper(HBase自带ZooKeeper,若HBASE_MANAGES_ZK=false则无需此步):
# 进入HBase的zk目录
cd /usr/local/hbase/bin
# 启动ZooKeeper集群(每个节点执行)
./zkServer.sh start
# 验证状态
./zkServer.sh status # 应显示"Mode: leader"或"Mode: follower"
2. 启动HBase集群
在Master节点执行以下命令启动集群:
# 启动HBase集群
start-hbase.sh
# 验证启动状态(查看Master和RegionServer进程)
jps # 应显示HMaster和HRegionServer进程
3. 验证集群状态
- 命令行验证:进入HBase Shell,执行
status命令:hbase shell status # 应显示"Cluster is ONLINE"及Master和RegionServer状态 - Web UI验证:通过浏览器访问Master节点的Web界面(默认端口16010):
应能看到集群概览、RegionServer列表、表信息等。http://master_ip:16010
六、常见问题排查
1. 节点无法启动
- 查看日志:检查
/usr/local/hbase/logs/目录下的hbase-*-master-*.log或hbase-*-regionserver-*.log,定位错误原因(如端口冲突、ZooKeeper连接失败); - 端口冲突:修改
hbase-site.xml中的端口配置(如hbase.master.port、hbase.regionserver.port),避免与其他服务冲突。
2. 内存不足
- 调整堆内存:修改
hbase-env.sh中的HBASE_HEAPSIZE参数,增加Master和RegionServer的堆内存(如从8GB调整为16GB); - 优化MemStore:调整
hbase.hregion.memstore.flush.size(如从128MB调整为256MB),减少刷写次数,提升写入性能。
3. ZooKeeper连接失败
- 检查地址:确认
hbase-site.xml中的hbase.zookeeper.quorum参数包含所有RegionServer节点的IP; - 验证ZooKeeper状态:通过
zkServer.sh status命令检查ZooKeeper是否正常运行(应显示Leader/Follower状态)。
七、后续优化建议
- 预分区:创建表时预先划分Region,避免数据倾斜(如
create 'my_table', 'cf', SPLITS => ['1000', '2000', '3000']); - 压缩:为列族启用Snappy或GZ压缩,减少存储占用(如
alter 'my_table', {NAME => 'cf', COMPRESSION => 'SNAPPY'}); - 副本数:调整HDFS副本数(
hdfs-site.xml中的dfs.replication),提升数据可靠性(生产环境建议3副本)。
以上就是关于“ubuntu里hbase集群搭建指南”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm