CentOS环境下HDFS版本升级步骤及注意事项
core-site.xml、hdfs-site.xml)。常用命令:hdfs dfsadmin -saveNamespace # 保存NameNode元数据到镜像文件
cp -r /etc/hadoop/conf /etc/hadoop/conf_backup # 备份配置文件
cp -r /hdfs/data /hdfs/data_backup # 备份数据目录(路径以实际为准)
ntpdate命令同步,时间差≤1秒);升级前需停止所有HDFS相关服务,避免数据写入冲突。根据集群是否启用HA(高可用),执行对应命令:
sudo systemctl stop hadoop-hdfs-namenode # 停止NameNode
sudo systemctl stop hadoop-hdfs-datanode # 停止所有DataNode
stop-dfs.sh # 停止所有HDFS服务(包括NameNode、DataNode、JournalNode等)
执行后,通过hdfs dfsadmin -report命令确认集群状态为“Standby”或“Stopped”。hadoop-3.3.6.tar.gz),解压至指定目录(如/opt):wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz -C /opt/
mv /opt/hadoop-3.3.6 /opt/hadoop-new # 重命名便于区分
/etc/profile或~/.bashrc文件,添加新版本Hadoop的环境变量:export HADOOP_HOME=/opt/hadoop-new
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:source /etc/profile
/opt/hadoop-2.10.1→/opt/hadoop-old),避免升级失败后无法回滚。core-site.xml、hdfs-site.xml、yarn-site.xml等)复制到新版本的etc/hadoop/目录下:cp /opt/hadoop-old/etc/hadoop/*.xml /opt/hadoop-new/etc/hadoop/
hdfs-site.xml中的dfs.namenode.name.dir(NameNode元数据目录)、dfs.datanode.data.dir(DataNode数据目录)为新路径(需提前创建);dfs.namenode.fsimage.checksum.enabled(默认true,启用镜像文件校验);dfs.permissions.enabled,HDFS 3.x默认启用权限控制)。hadoop check native命令检查原生库(如压缩库)是否正常加载。hdfs namenode -format
格式化后,需重新创建NameNode元数据目录(如/hdfs/name)。start-dfs.sh
hdfs dfsadmin -safemode wait # 等待安全模式退出(确保数据块复制完成)
hdfs namenode -upgrade命令将元数据升级到新版本格式(此命令会将旧版本元数据转换为新版本支持的格式):hdfs namenode -upgrade
执行后,通过hdfs dfsadmin -report命令确认集群状态为“Active”,且所有DataNode已正常注册。hdfs dfsadmin -report # 查看NameNode、DataNode状态(需所有节点为“Live”)
hdfs fsck / # 检查数据完整性(无损坏块)
hdfs dfs -mkdir /test_upgrade
hdfs dfs -put /etc/hosts /test_upgrade/hosts.txt
hdfs dfs -cat /test_upgrade/hosts.txt
若升级成功且运行稳定,可清理旧版本文件以释放空间:
rm -rf /opt/hadoop-old # 删除旧版本Hadoop目录
rm -rf /etc/hadoop/conf_backup # 删除备份的配置文件
rm -rf /hdfs/data_backup # 删除备份的数据目录(确认数据无问题后)
dfs.replication参数设置为≥3)。/opt/hadoop-new);/opt/hadoop-old)及配置文件;start-dfs.sh)。hdfs dfsadmin -rollingUpgrade rollback命令快速回滚。$HADOOP_HOME/logs/目录),及时处理异常(如数据块复制延迟、节点失联)。