So-net無料ブログ作成

インフラエンジニアのためのHadoop情報 障害復旧その1 [Hadoop]

Hadoopの障害の中でも、あらかじめ復旧手順を確認しておかなければいけないとすれば、
やはりNameNodeでしょう。
PrimaryNameNodeが停止するとHadoopクラスタは利用できなくなります。
fsコマンドでエラーが返ってくるようなら、NameNodeに問題が発生している場合があります。
NameNodeの障害を放置しておくと、HDFS上のデータが破損してしまう恐れがあるので、異常を
見つけたら速やかに復旧しましょう。
以下の例は、PrimaryNameNodeが停止した場合のエラーです。
$ hadoop fs -ls
10/07/06 18:18:06 INFO ipc.Client: Retrying connect to server: srv1/192.168.1.1:8020.
 Already tried 0
time(s).
10/07/06 18:18:07 INFO ipc.Client: Retrying connect to server: srv1/192.168.1.1:8020.
 Already tried 1
time(s).

PrimaryNameNodeの障害を取り除くことが出来たなら、Hadoopクラスタの復旧手順に入ります。
NameNodeが起動中の場合は、停止します。
$ sudo /sbin/service hadoop-0.20-namenode stop

メタデータの状態を確認します。
$ cd /var/lib/hadoop-0.20/cache/hadoop/dfs/name/current/
$ ls -la
drwxrwxr-x 2 hadoop hadoop   4096  7月  6 18:18 .
drwxrwxr-x 4 hadoop hadoop   4096  7月  6 18:18 ..
-rw-rw-r-- 1 hadoop hadoop    101  7月  6 18:18 VERSION
-rw-rw-r-- 1 hadoop hadoop      4  7月  6 18:18 edits
-rw-rw-r-- 1 hadoop hadoop 833380  7月  6 18:18 fsimage
-rw-rw-r-- 1 hadoop hadoop      8  7月  6 18:18 fstime

editsファイルが4バイトを超えていたり、fsimageが小さすぎたりする場合は、SecondaryNameNode
との通信が途中で切断された場合があります。そのような状態のまま、クラスタの再起動をする
と、最悪HDFS上のファイルが見えなくなってしまいます。
SecondaryNameNodeから取得したメタデータのバックアップを使用して復旧させましょう。
$ tar cvf /mnt/backup/namenode-bak.tar *

メタデータが正常に戻ったらNameNodeを起動します。
$ sudo /sbin/service hadoop-0.20-namenode start

HDFSの状態を確認します。
$ hadoop fsck /
:
Over-replicated blocks:        0 (0.0 %)
Under-replicated blocks:       0 (0.0 %)
Mis-replicated blocks:         0 (0.0 %)
Default replication factor:    3
Average block replication:     3.0
Corrupt blocks:                0
Missing replicas:              0 (0.0 %)
Number of data-nodes:          4
Number of racks:               1


The filesystem under path '/' is HEALTHY


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。