hadoop 1.x升級至hadoop-2.2.0記錄

一、概述

    公司hadoop集羣從1.2.1升級到2.2.0已經有一段時間,這篇blog將總結一下我前段時間在升級至hadoop2.2.0版本過程中遇到的一些問題,以及具體的升級步驟。

二、升級過程

(1)停掉hadoop1.x集羣。

(2)備份namenode原數據,即備份dfs.namenode.name.dir指向的路徑。以免造成由於升級版本帶來的風險。

(3)下載hadoop-2.2.0解壓,用scp將解壓後的hadoop-2.2.0複製到各個子節點。修改各個子節點的hadoop用戶的配置文件,如果是ubumtu這編輯~/.bash_profile文件,將$HADOOP_HOME指向新版 本hadoop-2.2.0,以及更新相應的環境變量。

(4)將Hadoop2.2.0的${HADOOP_HOMOE}/etc/hadoop/hdfs-site.xml中dfs.namenode.name.dir和dfs.datanode.data.di屬性的值分別指向hadoop1.x的${HADOOP_HOME}/conf/hdfs-site.xml中dfs.name.dir和dfs.data.dir的值。

(5)啓動相關進程。

    啓動namenode,直接執行啓動命令:$HADOOP_HOME/sbin/hadoop-daemon.sh start namenode會被提示版本不一致,這個時候就可以直接採用upgrade方式啓動namenode:$HADOOP_HOME/sbin/hadoop-daemon.sh start namenode -upgrade  執行命令過後,如果你集羣之前升級過,而且沒有最經commit,那麼就會殘留有之前版本的信息,看dfs.namenode.name.dir路徑信息存在previous.checkpoint文件夾:

wKiom1OhOI3TF4ZQAAC5vegrn-E134.jpg

這個時候你upgrade是會出錯的,錯誤信息如下:

wKiom1OhONmCNZjIAAhyh9tE5zo593.jpg

要想升級成功必須將你之前升級過程中的版本信息刪除掉,這裏執行$HADOOP_HOME/bin/hdfs dfsadmin -finalizeUpgrade之前的版本信息就會被刪掉,但是刪掉以後你不能rollback回到之前的版本。這樣刪除舊版信息後,就可以$HADOOP_HOME/sbin/hadoop-daemon.sh start namenode -upgrade進行升級了。當升級完成之後,又會生成一箇舊版辦備份信息,存在在dfs.namenode.name.dir路徑中的previous.checkpoint文件夾中,用於之後的版本rollback操作。

(6)Hadoop2.2.0升級到這裏已經完畢並且namenode進程已經啓動。現在將其他進程啓動起來,依次啓動ResourceManager、WebAppProxyServer、JobHistoryServer、啓動各個slave節點的nodeManager和datanode進程。這個要主要兩個進程的,一個是JobHistoryServer,這個進程主要是保存和處理作業的日誌信息,這個進程必須啓動,不然看不到job的日誌信息。另外,WebAppProxyServer這個進程主要作用是作爲HADOOP web頁面的一個代理,主要是爲了安全考慮,也一定要啓動。


    另外,關於Hadoop2.x的JournalNodes、active NN和standby NN等HA方式,將在下一篇blog中寫寫如何部署和各自的原理,請看:http://zengzhaozheng.blog.51cto.com/8219051/1441170 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章