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 命令就失效了。