hdfs dfsadmin -saveNamespace命令保存NameNode元数据(覆盖旧命名空间文件),或通过hdfs dfsadmin -backup创建增量备份。/etc/hadoop/下的core-site.xml、hdfs-site.xml、mapred-site.xml等配置文件;备份NameNode元数据目录(如/data/namenode/current)、DataNode数据目录(如/data/datanode/current)。hadoop-3.4.0.tar.gz),上传至Linux服务器。/opt/),并备份旧版本目录(如/opt/hadoop-2.10.1):tar -xzvf hadoop-3.4.0.tar.gz -C /opt/
mv /opt/hadoop-2.10.1 /opt/hadoop-2.10.1.bak
```。
使用stop-dfs.sh脚本停止所有HDFS服务(NameNode、DataNode):
$HADOOP_HOME/sbin/stop-dfs.sh
或通过systemctl命令(若使用systemd管理):
sudo systemctl stop hadoop-hdfs-namenode
sudo systemctl stop hadoop-hdfs-datanode
```。
## 三、升级HDFS软件包
1. **解压新版本**:将下载的新版本Hadoop解压至目标目录(如`/opt/hadoop-3.4.0`)。
2. **更新环境变量**:修改`/etc/profile`或`~/.bashrc`,将`HADOOP_HOME`指向新版本目录,并更新`PATH`:
```bash
echo "export HADOOP_HOME=/opt/hadoop-3.4.0" >> /etc/profile
echo "export PATH=\$HADOOP_HOME/bin:\$PATH" >> /etc/profile
source /etc/profile
```。
## 四、执行升级操作
### 1. 非HA(高可用)集群(停机升级)
- 直接启动升级流程:
```bash
hdfs namenode -upgrade
start-dfs.sh
hdfs dfsadmin -report查看集群节点是否运行新版本,或访问NameNode Web界面(默认http://namenode:9870)确认版本号。滚动升级可避免集群停机,步骤如下:
hdfs dfsadmin -rollingUpgrade prepare
nn1,执行hdfs haadmin -failover nn1 nn2);hdfs namenode -upgrade
hdfs dfsadmin -shutdownDatanode datanode1:50010 upgrade
hdfs --daemon start datanode
hdfs dfsadmin -rollingUpgrade finalize
```。
hdfs dfsadmin -report
确认所有节点(NameNode、DataNode)状态为“Live”,且版本号显示为新版本。hdfs dfs -mkdir /test_upgrade;hdfs dfs -put /local/file.txt /test_upgrade;hdfs dfs -get /test_upgrade/file.txt /local/,对比MD5值确保数据一致性。若升级后出现数据损坏、服务无法启动等问题,需执行回滚:
hdfs namenode -rollback
hdfs dfsadmin -rollingUpgrade rollback
start-dfs.sh),恢复至升级前状态。