Ubuntu HDFS版本升级流程(以滚动升级为例,适用于Hadoop 2.x→3.x及以上版本)
数据与环境检查
/user、/data等目录)进行全量备份(可使用hadoop fs -copyToLocal或第三方存储工具);备份NameNode元数据目录(默认$HADOOP_HOME/data/namenode)和DataNode数据目录(默认$HADOOP_HOME/data/datanode)。停止HDFS服务
$HADOOP_HOME/sbin/stop-dfs.sh jps命令确认NameNode、DataNode进程已完全停止。滚动升级通过逐步替换节点版本,实现集群无停机升级,适用于生产环境。
hdfs dfsadmin -rollingUpgrade prepare Proceed with rolling upgrade(表示可继续升级):hdfs dfsadmin -rollingUpgrade query hdfs dfsadmin -rollingUpgrade start hdfs dfsadmin -shutdownDatanode <datanode_host>:<ipc_port> upgrade jps或$HADOOP_HOME/logs/datanode.log确认)。$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode hdfs dfsadmin -report hdfs haadmin -failover <standby_namenode> <active_namenode> hdfs dfsadmin -rollingUpgrade started $HADOOP_HOME/sbin/hadoop-daemon.sh start namenode hdfs dfsadmin -rollingUpgrade finalize 检查集群状态
hdfs dfsadmin -report查看NameNode、DataNode的数量及状态(应均为live)。http://<namenode_host>:9870),确认集群版本显示为新版本。测试功能
hadoop fs -put /local/file /hdfs/path上传文件,hadoop fs -get /hdfs/path /local/dir下载文件)。hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples.jar wordcount /input /output),确认任务执行成功。若升级后出现元数据损坏、服务无法启动等问题,需立即执行回滚:
停止集群
$HADOOP_HOME/sbin/stop-dfs.sh 回滚HDFS
hdfs dfsadmin -rollingUpgrade rollback 重启旧版本
start-dfs.sh脚本启动集群:$HADOOP_HOME/sbin/start-dfs.sh 验证回滚
hdfs dfsadmin -report显示所有节点live),数据完整性未受影响。Erasure Coding替代传统副本机制),需提前修改hdfs-site.xml配置(如dfs.replication改为dfs.erasurescoding.policy)。$HADOOP_HOME/logs下的NameNode、DataNode日志,及时处理ERROR或WARN级别的异常。core-site.xml、hdfs-site.xml更新为新版本路径,确保客户端能正常访问集群。