Hadoop 滾動升級很是方便,只須要在配置中增長一些選項就能夠經過Hadoop自身的代碼進行完成。node
步驟:web
一、首先到須要升級的NameService的Active NameNode上面,好比咱們10.39.2.131是ns1的Active NameNode。shell
二、新增長的配置:oop
<property>spa
<name>dfs.ha.fencing.methods</name>hadoop
<value>shell(/bin/true)</value>ci
</property>it
三、在ActiveNameNode上面使用命令io
hdfs haadmin -ns ns1 -failover nn1 nn2cli
將nn1切換爲Standby,nn2切換爲Active。隨後看一下web頁面,確認這一過程完成順利。
(若是這一過程失敗,採用手動切換。
(1)若是ActiveNameNode沒有切換爲StandbyNameNode
hdfs haadmin -ns ns1 -transitionToStandby nn1
(2)確認nn1進入standby狀態,防止client讀取過時的數據。
hdfs haadmin -ns ns2 -transitionToActive nn2)
四、中止nn1(如今已經切換爲StandByNameNode)
hadoop-daemon.sh stop namenode
五、替換jar包
六、啓動nn1
hadoop-daemon.sh start namenode
七、到nn2(目前爲ActiveNameNode),執行步驟3,只不過參數位置變化
hdfs haadmin -ns ns1 -failover nn2 nn1
八、中止nn2
hadoop-daemon.sh stop namenode
九、替換jar包
十、啓動nn2
hadoop-daemon.sh start namenode
至此,滾動升級完成,在升級過程當中不影響client及任務的執行,作到了不停機升級。