LoginSignup
5
5

More than 5 years have passed since last update.

Hadoop 2.5.0から2.6.0にアップグレードするときの手順 (非HA版)

Posted at

Overview

  • 2.2から2.3へのHDFSのアップグレード手順は以前の記事で紹介したが、2.4以降だと少し手順が変わっているので、ここにメモしている。

前提

  • 細かいバックアップ手順などは書いていません
  • 本番環境で以下の手順をそのまま適用しないように注意すること

    • あくまでも、参考資料です
  • NameNodeでHAを組んでいない構成のため、Rolling Upgradeしません

    • HA構成を組んでいる、かつ、無停止でアップグレードさせたい人は、是非試してみてください
  • Hadoop 2.6.0-RC0で試した内容なので、実際のリリース版とは異なる場合があります

HDFS

2.5.0のクラスタを終了する

  • Namespaceを保存
$ hdfs dfsadmin -safemode enter
$ hdfs dfsadmin -saveNamespace
  • 以前のUpgradeが完了していないようであれば、完了させる

完了していない場合は、NameNodeのWebUIに以下のような表示が出る。

Screen Shot 2014-11-11 at 15.47.57.png

完了させる手順

$ hdfs dfsadmin -finalizeUpgrade

以前の記事のように、hdfs namenode -finalizeを実行すると、以下のようなログが出て注意される。(Hadoop 2.4.0以降)

Console
************************************************************/
14/11/11 15:07:13 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
14/11/11 15:07:13 INFO namenode.NameNode: createNameNode [-finalize]
Use of the argument 'FINALIZE' is no longer supported. To finalize an upgrade, start the NN  and then run `hdfs dfsadmin -finalizeUpgrade'
14/11/11 15:07:13 INFO util.ExitUtil: Exiting with status 1
14/11/11 15:07:13 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************

finalize処理では、upgrade前のfsimageおよびeditsを格納しているディレクトリ"${dfs.namenode.name.dir}/previous"を消去している。

  • 最後に、NameNodeとDataNodeを停止する。
$ sbin/stop-dfs.sh
  • 2.5.0のHDFSのlayoutVersionについて

NameNodeのlayoutVersionは-57

$ cat /hadoop/dfs/name/current/VERSION
#Tue Nov 11 15:07:04 JST 2014
namespaceID=704993338
clusterID=CID-9f7a17e5-30dd-436e-82eb-743fe908cf17
cTime=1407394799428
storageType=NAME_NODE
blockpoolID=BP-149344879-127.0.0.1-1392166808826
layoutVersion=-57

DataNodeのlayoutVersionは-55

$ cat /hadoop/dfs/data/current/VERSION
#Tue Nov 11 14:44:29 JST 2014
storageID=DS-157848499-127.0.0.1-50010-1392228012931
clusterID=CID-9f7a17e5-30dd-436e-82eb-743fe908cf17
cTime=0
datanodeUuid=a6d33199-79d9-478f-bf8f-d11d07c19e6e
storageType=DATA_NODE
layoutVersion=-55

2.3以前はNameNodeとDataNodeで同一のlayoutVersionを使っていたが、Rolling Upgrade機能が追加されたことで、分離された。

2.6.0へのバージョンアップ

  • tarのダウンロード
$ wget http://people.apache.org/~acmurthy/hadoop-2.6.0-rc0/hadoop-2.6.0.tar.gz
  • tarを展開して設定ファイル(etc/hadoop配下にある)を除いてまるごと差し替え
  • upgradeオプションを付けてNameNodeを起動する
$ sbin/hadoop-daemon.sh --script hdfs start namenode -upgrade

成功時のログ

NameNodeログ
2014-11-11 15:32:15,837 INFO org.apache.hadoop.hdfs.server.namenode.FSImage: Starting upgrade of local storage directories.
   old LV = -57; old CTime = 1407394799428.
   new LV = -60; new CTime = 1415687535836
2014-11-11 15:32:15,838 INFO org.apache.hadoop.hdfs.server.namenode.NNUpgradeUtil: Starting upgrade of storage directory /hadoop/dfs/name
2014-11-11 15:32:15,955 INFO org.apache.hadoop.hdfs.server.namenode.FSImageTransactionalStorageInspector: No version file in /hadoop/dfs/name
2014-11-11 15:32:15,956 INFO org.apache.hadoop.hdfs.server.namenode.NNUpgradeUtil: Performing upgrade of storage directory /hadoop/dfs/name
2014-11-11 15:32:15,965 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Need to save fs image? false (staleImage=false, haEnabled=false, isRollingUpgrade=false)
  • ここでhdfs dfs -ls -R /を実行して、ファイルやディレクトリの欠落がないかどうか確認してから、DataNodeを起動する

NameNodeのlayoutVersionは-60

$ cat /hadoop/dfs/name/current/VERSION
#Tue Nov 11 15:32:15 JST 2014
namespaceID=704993338
clusterID=CID-9f7a17e5-30dd-436e-82eb-743fe908cf17
cTime=1415687535836
storageType=NAME_NODE
blockpoolID=BP-149344879-127.0.0.1-1392166808826
layoutVersion=-60

DataNodeのlayoutVersionは-56

$ cat /hadoop/dfs/data/current/VERSION
#Tue Nov 11 15:44:15 JST 2014
storageID=DS-157848499-127.0.0.1-50010-1392228012931
clusterID=CID-9f7a17e5-30dd-436e-82eb-743fe908cf17
cTime=0
datanodeUuid=a6d33199-79d9-478f-bf8f-d11d07c19e6e
storageType=DATA_NODE
layoutVersion=-56
  • 最後に、Downgradeの必要がないと分かった段階でfinalizeしてください
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5