HBase如何在Ubuntu上进行集群搭建
小樊
35
2025-12-28 11:36:05
Ubuntu 上搭建 HBase 集群实操指南
一 环境规划与前置准备
- 节点与网络
- 至少准备3台 Ubuntu 20.04+ 服务器(建议 2核4G+),主机名如:hadoop100、hadoop200、hadoop300,节点间网络互通。
- 关闭防火墙或开放端口:22(SSH)、16000(HMaster RPC)、16010(HMaster Web UI)、16020(HRegionServer)、2181(ZooKeeper)、9000(HDFS)、8032(YARN)。
- 基础软件
- 安装 Java 8 或 11(HBase 2.4.x/2.5.x 常用 JDK 8),配置 JAVA_HOME。
- 已部署并正常运行的 Hadoop 集群(HDFS+YARN,建议 3.2+)。
- 已部署 ZooKeeper 集群(建议 3 节点,版本 3.7+),奇数节点便于选主。
- 账号与 SSH
- 所有节点使用同一普通用户(如 hbase)操作,配置 SSH 免密登录(主节点可免密登录所有节点)。
二 安装与分发 HBase
- 下载与解压(在主节点执行)
- 示例版本:HBase 2.4.11(与 Hadoop 3.x 兼容)
- 命令:
- wget https://dlcdn.apache.org/hbase/2.4.11/hbase-2.4.11-bin.tar.gz
- sudo tar -zxvf hbase-2.4.11-bin.tar.gz -C /usr/local/
- sudo mv /usr/local/hbase-2.4.11 /usr/local/hbase
- 环境变量(所有节点一致)
- 编辑 /etc/profile 或 ~/.bashrc:
- export HBASE_HOME=/usr/local/hbase
- export PATH=$PATH:$HBASE_HOME/bin:$HBASE_HOME/sbin
- 生效:source /etc/profile 或 source ~/.bashrc
- 验证:hbase version
- 分发到从节点
- scp -r /usr/local/hbase hbase@hadoop200:/usr/local/
- scp -r /usr/local/hbase hbase@hadoop300:/usr/local/
三 集群配置
- 配置文件路径:$HBASE_HOME/conf/
- hbase-env.sh
- 设置 JAVA_HOME(如:/usr/lib/jvm/java-8-openjdk-amd64)
- 使用外部 ZooKeeper:export HBASE_MANAGES_ZK=false
- 可选性能参数:export HBASE_HEAPSIZE=4G;export HBASE_OPTS=“-XX:+UseG1GC”
- 可选:export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop(便于读取 Hadoop 配置)
- hbase-site.xml(关键)
- 启用分布式与 HDFS 存储:
- hbase.cluster.distributedtrue
- hbase.rootdirhdfs://hadoop100:9000/hbase(需与 Hadoop core-site.xml 的 fs.defaultFS 一致)
- 配置 ZooKeeper:
- hbase.zookeeper.quorumhadoop100,hadoop200,hadoop300
- hbase.zookeeper.property.dataDir/usr/local/zookeeper/data
- 可选性能参数:
- hbase.regionserver.handler.count100
- hbase.hregion.max.filesize10GB
- 节点清单
- regionservers(每行一个主机名):
- hadoop100
- hadoop200
- hadoop300
- 高可用(可选):创建 backup-masters,写入备用 Master(如 hadoop200)。
四 启动与验证
- 启动顺序:Hadoop → ZooKeeper → HBase
- Hadoop(NameNode 所在节点):start-dfs.sh;如需 YARN:start-yarn.sh
- ZooKeeper(各节点):zkServer.sh start;用 zkServer.sh status 检查,应见 1 个 Leader、其余 Follower
- HBase(HMaster 所在节点):start-hbase.sh
- 进程与 UI
- jps:Master 节点可见 HMaster(以及备用 Master 的 HMaster),RegionServer 节点可见 HRegionServer
- Web UI:浏览器访问 http://hadoop100:16010,查看 Cluster/RegionServers/表 等信息
- 命令行验证
- hbase shell
- 执行:list(初始为空);status(应显示 Cluster is ONLINE)
五 常见问题与优化
- 常见问题
- 权限问题:确保 /usr/local/hbase 与数据目录属主为 hbase,如:sudo chown -R hbase:hbase /usr/local/hbase
- 端口冲突:用 netstat -tulnp | grep 端口 检查 16010/2181/9000 等,释放或调整端口
- 版本兼容:如 HBase 2.4.x 搭配 Hadoop 3.2+;版本不匹配易导致启动失败
- ZooKeeper 未就绪:zkServer.sh status 确认 Leader/Follower 正常,且 hbase.zookeeper.quorum 配置一致
- 性能与稳定性优化
- 预分区:建表时按数据量预分区,避免热点,如:create ‘user_behavior’, {NAME => ‘cf1’, NUMREGIONS => 10}
- 缓存与压缩:调整 hfile.block.cache.size(默认 0.25),列族启用 COMPRESSION => ‘SNAPPY’
- 监控告警:引入 Prometheus + Grafana 监控 QPS/延迟/内存,设置阈值告警