ubuntu hbase配置步骤
小樊
35
2025-12-26 12:47:07
Ubuntu 下 HBase 配置步骤
一 环境准备与版本选择
- 操作系统建议:Ubuntu 20.04/22.04 LTS。
- Java 版本:HBase 2.x 建议使用 Java 8(1.8.x),更高版本可能不兼容。
- 依赖组件:
- 单机模式:仅需 Java 8。
- 伪分布式/集群模式:需 Hadoop HDFS 正常运行;ZooKeeper 可使用内置(HBASE_MANAGES_ZK=true)或外部集群。
- 基础工具:SSH(本地免密建议配置)、解压工具、编辑器。
- 版本建议:选择与 Hadoop 版本匹配的 HBase 2.4.x/2.5.x 稳定版,便于兼容与社区支持。
二 安装与环境变量
- 下载并解压(示例为 2.5.4):
- 下载地址:Apache HBase 官网下载页,选择 hbase-2.5.4-bin.tar.gz。
- 解压至 /usr/local:
sudo tar -zxf ~/下载/hbase-2.5.4-bin.tar.gz -C /usr/local
sudo chown -R $USER:$USER /usr/local/hbase-2.5.4
- 配置环境变量(~/.bashrc 或 /etc/profile):
export HBASE_HOME=/usr/local/hbase-2.5.4
export PATH=$PATH:$HBASE_HOME/bin
source ~/.bashrc
- 验证安装:
hbase version
出现版本信息即表示安装成功。
三 单机模式配置
- 编辑 $HBASE_HOME/conf/hbase-env.sh:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # 按实际路径修改
export HBASE_MANAGES_ZK=true # 使用内置 ZooKeeper
- 编辑 $HBASE_HOME/conf/hbase-site.xml:
hbase.rootdir
file:///usr/local/hbase-2.5.4/hbase-tmp
- 启动与验证:
start-hbase.sh
hbase shell
status
stop-hbase.sh
- 说明:rootdir 使用本地文件系统目录,避免默认 /tmp 重启后数据丢失。
四 伪分布式模式配置
- 前提:Hadoop HDFS 已启动(如 start-dfs.sh),NameNode 默认 9000 端口。
- 编辑 $HBASE_HOME/conf/hbase-env.sh:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HBASE_MANAGES_ZK=true
如与 Hadoop 依赖冲突,可添加:
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true
- 编辑 $HBASE_HOME/conf/hbase-site.xml:
hbase.rootdir
hdfs://localhost:9000/hbase
hbase.cluster.distributed
true
hbase.unsafe.stream.capability.enforce
false
- 启动与验证:
start-hbase.sh
jps # 应看到 HMaster、HRegionServer(及内置 HQuorumPeer)
hbase shell
status
stop-hbase.sh
- 常见问题:
- 启动后看不到 HMaster:检查是否设置 hbase.unsafe.stream.capability.enforce=false。
- 停止卡住:先执行 hbase-daemon.sh stop master,再执行 stop-hbase.sh。
- 启停顺序:先 Hadoop → 再 HBase → 先停 HBase → 再停 Hadoop。
五 常见问题与排查
- Java 版本不兼容:HBase 2.x 建议使用 Java 8;更高版本可能报错或行为异常。
- 端口与主机名:伪分布式使用 localhost:9000 作为 HDFS 入口;多机集群需将 localhost 改为 NameNode 主机名/IP,并在所有节点保持一致配置。
- 日志定位:异常时优先查看 $HBASE_HOME/logs/ 下的日志文件(如 hbase--master-.log)。
- Web UI:HMaster Web UI 默认端口 16010(如无法访问,检查防火墙与绑定地址)。
- 依赖冲突:如出现类加载或版本冲突,可设置 HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true。