HDFS在Linux上的版本升级流程及注意事项
hdfs dfsadmin -saveNamespace命令保存)和关键配置文件(如core-site.xml、hdfs-site.xml、yarn-site.xml),防止升级过程中数据丢失或配置错误。hadoop-3.x.x.tar.gz),校验文件完整性(如通过MD5或SHA256),避免下载损坏的安装包。根据集群管理模式停止服务:
sudo systemctl stop hadoop-hdfs-namenode
sudo systemctl stop hadoop-hdfs-datanode
./bin/stop-dfs.sh # 停止所有DataNode和NameNode
确保所有节点的服务完全停止,避免升级过程中数据写入导致不一致。
将下载的新版本压缩包解压到指定目录(如/opt/),建议备份旧版本目录(如/opt/hadoop-2.x.x):
tar -xzvf hadoop-3.x.x.tar.gz -C /opt/
mv /opt/hadoop-3.x.x /opt/hadoop # 可选:重命名新版本目录
确保新版本目录的权限正确(如属主为hadoop用户)。
修改新版本目录下的配置文件,适配新版本的参数要求:
core-site.xml:更新fs.defaultFS(如从hdfs://old-namenode:8020改为hdfs://new-namenode:8020);hdfs-site.xml:调整dfs.replication(副本数)、dfs.namenode.name.dir(元数据存储路径,需与旧版本一致)、dfs.datanode.data.dir(数据存储路径,需与旧版本一致);yarn-site.xml(若集成YARN):更新ResourceManager、NodeManager的地址和端口;hadoop-env.sh:修改JAVA_HOME为新环境的Java路径(如export JAVA_HOME=/usr/lib/jvm/java-11-openjdk)。-force参数):hdfs namenode -upgrade # 格式化并升级元数据
start-dfs.sh # 启动HDFS服务
hdfs dfsadmin -rollingUpgrade prepare;hdfs namenode -rollingUpgrade start;hdfs haadmin -failover standby active);hdfs namenode -rollingUpgrade start;hdfs dfsadmin -shutdownDatanode <datanode_host>:<ipc_port> upgrade关闭DataNode,再启动新版本(hdfs --daemon start datanode);hdfs dfsadmin -rollingUpgrade finalize。hdfs dfsadmin -report,确认所有节点(NameNode、DataNode)状态为“Live”;http://namenode:9870)和DataNode(如http://datanode:9864)的Web页面,确认版本号显示为新版本;hdfs fsck /,验证文件系统无损坏或数据丢失。若升级后出现数据不一致、服务无法启动等问题,需立即执行回滚:
sudo systemctl stop hadoop-hdfs-namenode
sudo systemctl stop hadoop-hdfs-datanode
hdfs namenode -rollback # 回滚元数据
start-dfs.sh # 启动旧版本服务
hdfs dfsadmin -rollingUpgrade rollback
# 重启所有NameNode和DataNode
回滚前需确保备份的数据和配置可用。
dfs.replication=3),防止数据丢失。/var/log/hadoop-hdfs/namenode.log),及时发现并解决问题。