0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SecondaryNamenode image edits マージ失敗からのsaveNamespaceコマンドによる復旧

Posted at

saveNamespaceコマンドによる復旧

どうやら以下のバグにぶつかっていたようで、
http://www.cloudera.co.jp/blog/riskofhdfsmetadatacorruptionduetodfs-name-dirwithidenticaldirectoryend-component.html

NameNodeのMasterとセカンダリでメタデータの不整合が起きて、
それにより、SecondaryNamenodeでimageとeditsのマージに失敗する事象が起きました。

解決方法も上記のURLの通りで解決しました。
ただ、namenodeだけにビビリました。。
メタデータ不整合とか怖い・・(CDH4以上なら安心のようで)
あと、CDH4以上でもスキーマを日本語で作るとメタデータが落ちる?壊れるという噂も・・

おおざっぱな流れとしては、

  1. セカンダリネームノードを停止します。
    ->セカンダリ止めます。
  2. HDFS以外の全てのクラスタでの活動を停止します。
    ->HDFSでの作業になるので、その上で動いてるhbaseやmapreduceは止めて安全にやるってことですね。
  3. すべてのdfs.name.dirディレクトリのバックアップを作成します。
    ->その時のメタとエディッツのバックアップです。
  4. hdfsユーザでHDFSをセーフモードにします。
    $ hadoop dfsadmin -safemode enter
    ->セーフモードにします。読み込みのみのモードになります。
  5. saveNamespaceコマンドでNNのイメージを保存します。
    $ hadoop dfsadmin -saveNamespace
    ->メモリ上のイメージファイルをファイルとして保存してくれます。これで現状のイメージファイルと整合性がとれるメタデータになります。
  6. 全てのdfs.name.dirディレクトリを保存することによって、この新しいfsimage用の別のバックアップを作成します。
    ->バックアップ作成です。
  7. ネームノードを停止します。
    ->下の設定適用のためとメタデータ読み直しのための停止
  8. ユニークなパスのエンドコンポーネントを使うため、ローカルファイルシステムのdfs.name.dirディレクトリをリネームします。
    ->このバグのワークアラウンド処理です。
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?