温馨提示×

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/延迟/内存,设置阈值告警

0