1.运行dfsadmin -upgradeProgress status 检查是否存在备份 如果是第一次升级 就不存在备份(在升级Hadoop前,如果已经存在备份,需要先结束 finalize 它。)
2.备份dfs.namenode.dir下文件,同时要备份下hdfs的文件目录的元数据信息:
bin/hadoop fsck / -files -blocks -locations > dfs-v-old-fsck-1.log bin/hadoop dfs -lsr / > dfs-v-old-lsr-1.log bin/hadoop dfsadmin -report > dfs-v-old-report-1.log
3.停止所有节点 bin/stop-all.sh
4.在所有节点上重新部署hadoop 并替换conf文件夹下所有文件(就是将原有的hadoop-0.19.1更名为hadoop-0.19.1-oldverstion,然后解压hadoop-0.19.2.tar.gz 将0.19.2中的conf文件替换为0.19.1中的conf文件夹)
并且要对照修改hadoop-site.xml中的路径指定是否正确
5.使用 bin/start-dfs.sh -upgrade 进行升级(DFS从一个版本升级到另外一个版本的时候,NameNode和DataNode使用的文件格式有可能会改变。当你第一次使用新版本的时候,你要告诉Hadoop 去改变HDFS版本,否则,新版本不会生效)
6.监控升级情况和升级问题处理
开始升级,你可以通过
bin/hadoop dfsadmin -upgradeProgress
命令来查看版本升级的情况。
当然你可以使用
bin/hadoop dfsadmin -upgradeProgress details
来查看更多的详细信息。
当升级过程被阻塞的时候,你可以使用
bin/hadoop dfsadmin -upgradeProgress force
来强制升级继续执行(当你使用这个命令的时候,一定要慎重考虑)。
当HDFS升级完毕后,Hadoop依旧保留着旧版本的有关信息,
以便你可以方便的对HDFS进行降级操作。
可以使用bin/start-dfs.sh -rollback来执行降级操作。
7.对比现有hdfs的文件目录的元数据信息和升级的差异。
8.升级完成,Hadoop一次只保存一个版本的备份,当新版本运行几天以后还是没有出现什么问题,你就可以使用运行一段时间后 没有问题再执行升级终结操作
bin/hadoop dfsadmin -finalizeUpgrade
命令把旧版本的备份从系统中删掉了。删除以后rollback 命令就失效了。