Skip to content

把 Hadoop 从 3.3.5 切到 3.2.4,从而解决 HBase 2.5.13 的 AsyncFS 崩溃问题。


⭐ 总体方案

不需要重装系统、不需要重装 HBase,只需:

  1. 下载 Hadoop 3.2.4
  2. 停止 HDFS
  3. 切换软链接 / 环境变量
  4. 同步核心配置(core-site.xml / hdfs-site.xml)
  5. 重启 HDFS + HBase

🔧 详细步骤


① 下载 Hadoop 3.2.4

进入存放 Hadoop 的目录:

cd /opt

下载:

wget https://downloads.apache.org/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
tar -xzf hadoop-3.2.4.tar.gz

这样你将有:

/opt/hadoop-3.2.4
/opt/hadoop-3.3.5 (旧)

② 停止 HDFS 和 HBase

stop-hbase.sh
stop-dfs.sh

确认 Java 进程全部退出:

jps

③ 修改软链接(核心步骤)

如果你当前有一个软链接 /opt/hadoop 指向 3.3.5:

ls -l /opt/hadoop

如果输出类似:

hadoop -> hadoop-3.3.5

请删除并改成 3.2.4:

rm -f /opt/hadoop
ln -s /opt/hadoop-3.2.4 /opt/hadoop

这样所有依赖 /opt/hadoop/bin 的命令立即切换到新版本。


④ 复制配置文件到新的 Hadoop

把旧 Hadoop 的配置复制到新 Hadoop:

cp /opt/hadoop-3.3.5/etc/hadoop/core-site.xml /opt/hadoop-3.2.4/etc/hadoop/
cp /opt/hadoop-3.3.5/etc/hadoop/hdfs-site.xml /opt/hadoop-3.2.4/etc/hadoop/
cp /opt/hadoop-3.3.5/etc/hadoop/yarn-site.xml /opt/hadoop-3.2.4/etc/hadoop/
cp /opt/hadoop-3.3.5/etc/hadoop/mapred-site.xml /opt/hadoop-3.2.4/etc/hadoop/
cp /opt/hadoop-3.3.5/etc/hadoop/hadoop-env.sh /opt/hadoop-3.2.4/etc/hadoop/

(你的 HDFS 使用的是同一个 NameNode 和 DataNode 目录,不需要 format)


⑤ 更新环境变量

打开:

vim ~/.bashrc

确保:

export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

重新加载:

source ~/.bashrc

检查:

hadoop version

应该看到:

Hadoop 3.2.4

⑥ 重启 HDFS

start-dfs.sh

检查:

jps

应包含:

  • NameNode
  • DataNode
  • SecondaryNameNode / JournalNode

⑦ 重启 HBase

start-hbase.sh

检查:

hbase shell
status

应该不再出现 asyncfs 异常。


🔥 到这里你已经成功将 Hadoop 切到 3.2.4,并解决 HBase 的 WAL 异常。


📌 可选:删除旧版本(在新版本稳定运行后)

rm -rf /opt/hadoop-3.3.5

🎉 总结:切换 Hadoop 的最短步骤

stop-hbase.sh
stop-dfs.sh
cd /opt
tar -xzf hadoop-3.2.4.tar.gz
rm -f hadoop
ln -s hadoop-3.2.4 hadoop
cp hadoop-3.3.5/etc/hadoop/*.xml hadoop-3.2.4/etc/hadoop/
source ~/.bashrc
start-dfs.sh
start-hbase.sh

如果你希望,我还可以给你:

✅ HBase 2.5.13 + Hadoop 3.2.4 的最佳调优配置模板 ✅ 完整的 hdfs-site.xml / core-site.xml / hbase-site.xml 最佳搭配 ✅ 检查是否有残留 JAR 冲突的脚本

你需要哪个?