阅读量:23
Ubuntu系统更新HDFS版本的步骤指南
一、升级前准备工作
- 备份关键数据
备份NameNode的元数据目录(dfs.namenode.name.dir,如/usr/local/hadoop/hdfs/namenode)和DataNode的数据目录(dfs.datanode.data.dir,如/usr/local/hadoop/hdfs/datanode),防止升级过程中数据丢失。 - 检查版本兼容性
查阅新版本HDFS的官方文档,确认其与当前Hadoop集群的其他组件(如YARN、MapReduce)及Ubuntu系统的兼容性(如Hadoop 3.x需匹配Java 8或更高版本)。 - 检查系统环境
- 更新Ubuntu系统:
sudo apt update && sudo apt upgrade -y; - 确保Java环境兼容:
java -version(推荐OpenJDK 8/11),若未安装则执行sudo apt install openjdk-11-jdk; - 验证SSH无密码登录(集群节点间需配置):
ssh localhost能免密登录。
- 更新Ubuntu系统:
二、下载并安装新版本Hadoop
- 下载新版本
从Apache Hadoop官网下载目标版本的二进制包(如hadoop-3.3.6.tar.gz):
wget https://downloads.apache.org/hadoop/core/hadoop-3.3.6/hadoop-3.3.6.tar.gz。 - 解压并替换旧版本
解压到指定目录(如/usr/local/hadoop),并备份旧版本:sudo mv /usr/local/hadoop /usr/local/hadoop-old sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/ sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop ```。 - 更新环境变量
编辑~/.bashrc文件,修改HADOOP_HOME为新版本路径,并更新PATH:执行export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinsource ~/.bashrc使配置生效。
三、更新配置文件
进入$HADOOP_HOME/etc/hadoop目录,检查并更新关键配置文件:
- core-site.xml:确认
fs.defaultFS指向正确的HDFS地址(如hdfs://localhost:9000); - hdfs-site.xml:调整
dfs.replication(副本数,单节点设为1)、dfs.namenode.name.dir(NameNode元数据目录)、dfs.datanode.data.dir(DataNode数据目录)等参数; - mapred-site.xml(可选):若使用MapReduce,设置
mapreduce.framework.name为yarn; - yarn-site.xml(可选):若使用YARN,配置ResourceManager和NodeManager的地址。
四、停止HDFS服务
在升级前,停止所有HDFS相关服务:
$HADOOP_HOME/sbin/stop-dfs.sh
使用jps命令确认NameNode、DataNode进程已停止。
五、执行升级操作
- 启动升级
使用-upgrade参数启动HDFS,触发版本升级流程:$HADOOP_HOME/sbin/start-dfs.sh -upgrade - 监控升级进度
通过以下命令查看升级状态(实时更新):若升级卡住,可使用hdfs dfsadmin -upgradeProgress status # 查看详细进度 hdfs dfsadmin -upgradeProgress detailsforce强制继续(谨慎使用):hdfs dfsadmin -upgradeProgress force ```。
六、验证升级结果
- 检查集群状态
使用jps命令确认NameNode、DataNode进程已启动;
访问HDFS Web界面(默认http://localhost:9870),查看集群健康状态。 - 验证数据完整性
运行hdfs fsck命令检查文件系统健康:
确保无数据块丢失或损坏。hdfs fsck / - 测试基本功能
执行简单的HDFS操作,如创建目录、上传文件:hdfs dfs -mkdir /test_upgrade hdfs dfs -put /local/file.txt /test_upgrade/ hdfs dfs -ls /test_upgrade
七、清理旧版本(可选)
若升级后运行稳定(建议观察7天以上),可删除旧版本数据以释放空间:
hdfs dfsadmin -finalizeUpgrade
执行后,无法再回滚到旧版本。
八、回滚计划(若升级失败)
若升级过程中出现问题,可通过以下步骤回滚到旧版本:
- 停止当前HDFS服务:
$HADOOP_HOME/sbin/stop-dfs.sh; - 启动旧版本服务:使用旧版本的
sbin/start-dfs.sh脚本启动; - 恢复数据:将备份的元数据和数据目录覆盖到新版本的对应路径。
注意:生产环境升级前,务必在测试环境中模拟整个流程,确保兼容性和稳定性。