Linux下Hadoop版本升级详细步骤及注意事项
hadoop version命令,明确当前Hadoop的主版本号(如3.3.0)和次版本号(如3.3.6),判断是否需要跨主版本升级(如2.x→3.x)。cp -r $HADOOP_HOME/etc/hadoop /backup/hadoop_config_backup(保留core-site.xml、hdfs-site.xml、yarn-site.xml等自定义配置);hadoop fs -copyToLocal / $BACKUP_DIR/hdfs_data(可选,若数据量大可选择增量备份);cp -r $HADOOP_HOME/logs /backup/yarn_logs(用于问题排查)。java -version(如Hadoop 3.3.6需Java 8或11);ssh localhost(需免密登录);sbin目录,依次执行:./stop-yarn.sh # 停止YARN服务 ./stop-dfs.sh # 停止HDFS服务 使用jps命令确认所有守护进程(NameNode、DataNode、ResourceManager、NodeManager等)已停止。wget命令下载官方压缩包(以Hadoop 3.3.6为例):wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz 校验压缩包完整性(如通过MD5或SHA256值)。/usr/local):tar -zxvf hadoop-3.3.6.tar.gz -C /usr/local/ 备份旧版本(可选但推荐):mv /usr/local/hadoop /usr/local/hadoop_old 重命名新版本目录:mv /usr/local/hadoop-3.3.6 /usr/local/hadoop ```。 ~/.bashrc(或~/.bash_profile),更新HADOOP_HOME和PATH:export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source ~/.bashrc,验证环境变量:echo $HADOOP_HOME # 应输出新版本路径 hadoop version # 应显示新版本号 ```。 etc/hadoop目录:cp -r /backup/hadoop_config_backup/* $HADOOP_HOME/etc/hadoop/ core-site.xml中的fs.defaultFS路径是否与新版本兼容(如Hadoop 3.x默认端口从8020改为9000);hdfs-site.xml中的dfs.namenode.name.dir、dfs.datanode.data.dir路径是否存在且权限正确(需为hadoop:hadoop);yarn-site.xml中的yarn.resourcemanager.hostname、yarn.nodemanager.aux-services等配置是否符合新版本要求。start-dfs.sh启动HDFS服务,若为新版本首次启动,需添加-upgrade参数触发文件系统升级:$HADOOP_HOME/sbin/start-dfs.sh -upgrade 此命令会将HDFS的元数据(如NameNode的fsimage、edits文件)升级到新版本格式。hadoop dfsadmin -upgradeProgress status # 查看简要状态 hadoop dfsadmin -upgradeProgress details # 查看详细步骤(如元数据转换进度) 若升级卡住,可使用force参数强制继续(需谨慎,可能导致数据不一致)。$HADOOP_HOME/sbin/start-yarn.sh 使用yarn application -list验证YARN是否正常运行。hdfs dfs -ls /(查看根目录是否存在);yarn node -list(查看节点是否注册);jps(应存在NameNode、DataNode、ResourceManager、NodeManager等进程)。hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 10 100),验证任务是否能正常执行并输出结果。hadoop dfsadmin -finalizeUpgrade 执行后,rollback命令将失效,无法回退到旧版本。$HADOOP_HOME/sbin/stop-dfs.sh $HADOOP_HOME/sbin/stop-yarn.sh hadoop,恢复环境变量,重启服务即可。注意事项:
dfs.replication的默认值,需显式配置);