HBase安装与配置——单机版到完全分布式部署

发布于:2025-04-02 ⋅ 阅读:(14) ⋅ 点赞:(0)

目录

一、在主节点和从节点完成一下操作:

(一)环境准备

Java环境配置

(二)HBase的安装

HBase单机版安装

1. 下载与解压

2. 配置环境变量

3. 权限配置

4. 配置文件修改

1. 配置hbase-env.sh:

2. 配置hbase-site.xml:

5. 启动与验证

HBase完全分布式安装

1. Hadoop环境适配

2. HBase配置文件

1. hbase-env.sh:

2. hbase-site.xml:

3. 配置regionservers:

4. 同步Hadoop配置文件:

二、HBase启动与停止

1. 启动流程

2. 停止流程

三、常见问题与优化建议

1. 环境变量不生效

2. HBase启动失败

3. 性能优化

四、总结


一、在主节点和从节点完成一下操作:

(一)环境准备

Java环境配置

HBase依赖Java环境,需确保JDK 1.8已正确安装并配置环境变量。
操作步骤:

# 编辑环境变量配置文件
vim ~/.bashrc

# 添加以下内容(替换为实际Java路径)
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151
export PATH=$JAVA_HOME/bin:$PATH

# 使配置生效
source ~/.bashrc

# 验证配置
java -version

输出应为:

java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)

注意事项与解决办法:

  • 问题java -version显示版本不一致,或echo $JAVA_HOME为空。

    • 原因:环境变量未生效或路径错误。

    • 解决

      1. 检查JAVA_HOME路径是否与Java实际安装路径一致。

      2. 执行source ~/.bashrc重新加载配置。

      3. 若仍无效,尝试重启终端或系统。


(二)HBase的安装

HBase单机版安装

1. 下载与解压

HBase官网下载2.4.11版本,解压到/usr/local目录:

sudo tar -zxf ~/Downloads/hbase-2.4.11-bin.tar.gz -C /usr/local
sudo mv /usr/local/hbase-2.4.11 /usr/local/hbase
2. 配置环境变量
vim ~/.bashrc

# 添加HBase路径
export PATH=$PATH:/usr/local/hbase/bin

# 生效配置
source ~/.bashrc

# 验证安装
hbase version

输出HBase版本信息即表示安装成功。

注意事项与解决办法:

  • 问题:执行hbase version提示command not found

    • 原因:环境变量未正确配置或未生效。

    • 解决

      1. 检查~/.bashrcPATH是否包含/usr/local/hbase/bin

      2. 执行source ~/.bashrc重新加载配置。

      3. 使用绝对路径验证:/usr/local/hbase/bin/hbase version

3. 权限配置
cd /usr/local
sudo chown -R hadoop ./hbase
4. 配置文件修改
1. 配置hbase-env.sh
vim /usr/local/hbase/conf/hbase-env.sh

# 设置Java路径和ZooKeeper管理
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151
export HBASE_MANAGES_ZK=true

2. 配置hbase-site.xml
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///usr/local/hbase/hbase-tmp</value>  <!-- 注意路径拼写 -->
  </property>
</configuration>

注意事项与解决办法:

  • 问题:启动HBase时报错/path/to/your/jdk/bin/java: No such file or directory

    • 原因:HBase启动脚本或配置文件中Java路径错误。

    • 解决

      1. 检查hbase-env.sh中的JAVA_HOME是否正确。

      2. 修改HBase启动脚本(/usr/local/hbase/bin/hbase)中的Java路径。

      3. 确保所有路径无拼写错误(如habse写成hbase)。

5. 启动与验证
# 启动HBase
start-hbase.sh

# 进入HBase Shell
hbase shell

# 停止HBase
stop-hbase.sh

注意事项与解决办法:

  • 问题start-hbase.sh启动后无进程或报错。

    • 解决

      1. 检查日志文件/usr/local/hbase/logs/hbase-*.log

      2. 确保hbase.rootdir路径存在且权限正确(需提前创建目录)。

      3. 若端口冲突,修改hbase-site.xml中的hbase.master.info.port


HBase完全分布式安装

1. Hadoop环境适配

需使用Hadoop 2.8.5版本,将Hadoop 3.x的配置文件迁移至2.8.5:

  • 复制core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xmlworkers(旧版为slaves)到Hadoop 2.8.5的配置目录。

  • 修改路径参数,例如hadoop.tmp.dir指向Hadoop 2.8.5的安装路径。

注意事项与解决办法:

  • 问题:Hadoop 2.8.5与HBase 2.4.11版本不兼容。

2. HBase配置文件
1. hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/java8/jdk1.8.0_181
export HBASE_CLASSPATH=/usr/local/hbase/conf
export HBASE_MANAGES_ZK=true

2. hbase-site.xml
<configuration>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://master:9000/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>master,slave01</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
  <property>
    <name>hbase.master.info.port</name>
    <value>60010</value>
  </property>
</configuration>

3. 配置regionservers
master
slave01

4. 同步Hadoop配置文件:
cp /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/hbase/conf/
cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf/

注意事项与解决办法:

  • 问题:HBase无法连接HDFS,报错org.apache.hadoop.hdfs.server.namenode.SafeModeException

    • 原因:HDFS处于安全模式。

    • 解决:执行hdfs dfsadmin -safemode leave退出安全模式。

  • 问题:ZooKeeper节点未正常启动。

    • 解决:检查hbase.zookeeper.quorum配置的节点是否可达,并确保防火墙已关闭。


二、HBase启动与停止

1. 启动流程

# 启动Hadoop集群
start-dfs.sh
start-yarn.sh

# 启动HBase
start-hbase.sh

# 验证进程
jps

  • Master节点进程NameNodeSecondaryNameNodeResourceManagerHQuorumPeerHMaster

  • Slave节点进程DataNodeNodeManagerHQuorumPeerHRegionServer

2. 停止流程

# 停止HBase
stop-hbase.sh

# 停止Hadoop集群
stop-yarn.sh
stop-dfs.sh

注意事项与解决办法:

  • 问题stop-hbase.sh无法完全停止进程。

    • 解决:手动终止残留进程:

      hbase-daemon.sh stop master    # 停止当前节点HMaster
      hbase-daemons.sh stop regionserver  # 停止所有RegionServer

三、常见问题与优化建议

1. 环境变量不生效

  • 原因:未执行source ~/.bashrc或路径配置错误。

  • 解决:检查路径拼写并重新加载配置。

2. HBase启动失败

  • 检查日志:查看/usr/local/hbase/logs中的错误日志。

  • 端口冲突:确保60010端口未被占用。

3. 性能优化

  • 内存配置:在hbase-env.sh中调整HBASE_HEAPSIZE(例如export HBASE_HEAPSIZE=4G)。

  • ZooKeeper独立部署:生产环境中建议使用独立ZooKeeper集群。


四、总结

通过本文,您已完成从HBase单机版到完全分布式的部署。关键点包括:

  1. Java环境配置与验证:避免路径错误和配置未生效问题。

  2. 配置文件准确性:重点关注hbase.rootdirhbase.zookeeper.quorum的配置。

  3. 日志排查:通过日志快速定位启动失败原因。

动手实践,遇到问题时善用日志排查,祝您在大数据之旅中畅通无阻! (ノ◕ヮ◕)ノ*:・゚✧⚡