Linux下Hadoop如何进行版本升级
导读:Linux下Hadoop版本升级详细步骤及注意事项 一、升级前准备 确认当前版本 执行hadoop version命令,明确当前Hadoop的主版本号(如3.3.0)和次版本号(如3.3.6),判断是否需要跨主版本升级(如2.x→3.x)...
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等自定义配置); - 备份HDFS数据:
hadoop fs -copyToLocal / $BACKUP_DIR/hdfs_data
(可选,若数据量大可选择增量备份); - 备份YARN日志:
cp -r $HADOOP_HOME/logs /backup/yarn_logs
(用于问题排查)。
- 备份配置文件:
- 查阅新版本文档
访问Hadoop官网(apache.org)下载页面,查看新版本的Release Notes,重点关注:- 不兼容变更(如配置项调整、API变动);
- 升级必需的依赖(如Java版本升级,如Hadoop 3.x要求Java 8+);
- 新增功能及已知问题。
- 检查依赖兼容性
根据新版本要求,确认系统已安装匹配的依赖:- Java:
java -version
(如Hadoop 3.3.6需Java 8或11); - SSH:
ssh localhost
(需免密登录); - 其他:ZooKeeper(如启用HA)、Protocol Buffers(如新版本要求的版本)。
- Java:
二、停止Hadoop集群
- 停止所有服务
进入Hadoop的sbin
目录,依次执行:
使用./stop-yarn.sh # 停止YARN服务 ./stop-dfs.sh # 停止HDFS服务
jps
命令确认所有守护进程(NameNode、DataNode、ResourceManager、NodeManager等)已停止。
三、下载并解压新版本
- 下载新版本
使用wget
命令下载官方压缩包(以Hadoop 3.3.6为例):
校验压缩包完整性(如通过MD5或SHA256值)。wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
- 解压并替换旧版本
解压至目标目录(如/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
等配置是否符合新版本要求。
- 确认
六、启动集群并执行升级
- 启动HDFS
执行start-dfs.sh
启动HDFS服务,若为新版本首次启动,需添加-upgrade
参数触发文件系统升级:
此命令会将HDFS的元数据(如NameNode的$HADOOP_HOME/sbin/start-dfs.sh -upgrade
fsimage
、edits
文件)升级到新版本格式。 - 检查升级进度
使用以下命令实时查看升级状态:
若升级卡住,可使用hadoop dfsadmin -upgradeProgress status # 查看简要状态 hadoop dfsadmin -upgradeProgress details # 查看详细步骤(如元数据转换进度)
force
参数强制继续(需谨慎,可能导致数据不一致)。 - 启动YARN
启动YARN服务:
使用$HADOOP_HOME/sbin/start-yarn.sh
yarn application -list
验证YARN是否正常运行。
七、验证升级结果
- 检查集群状态
- HDFS:
hdfs dfs -ls /
(查看根目录是否存在); - YARN:
yarn node -list
(查看节点是否注册); - 进程:
jps
(应存在NameNode、DataNode、ResourceManager、NodeManager等进程)。
- HDFS:
- 运行测试任务
提交一个简单的MapReduce任务(如hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 10 100
),验证任务是否能正常执行并输出结果。
八、完成升级(可选)
- 清理旧版本备份
若升级后运行稳定(建议观察7天以上),可执行以下命令删除旧版本备份,释放空间:
执行后,hadoop dfsadmin -finalizeUpgrade
rollback
命令将失效,无法回退到旧版本。
九、回滚计划(若升级失败)
- 停止新版本服务
$HADOOP_HOME/sbin/stop-dfs.sh $HADOOP_HOME/sbin/stop-yarn.sh
- 恢复旧版本
将备份的旧版本目录重命名回hadoop
,恢复环境变量,重启服务即可。
注意事项:
- 跨主版本升级(如2.x→3.x)需特别注意配置项变更(如Hadoop 3.x移除了
dfs.replication
的默认值,需显式配置); - 若使用HDFS HA(高可用),升级前需确保ZooKeeper集群正常,升级过程中需同步更新ZooKeeper中的元数据;
- 生产环境建议先在测试集群验证升级流程,避免直接操作生产数据。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux下Hadoop如何进行版本升级
本文地址: https://pptw.com/jishu/725558.html