2011-12-18 6 views
3

このシナリオではどうなりますか: Namenodeは2つの異なるドライブ上の2つのディレクトリに書き込みを行います.1つはローカルで、もう1つはリモート(リモート)がマウントされています。さて、namenodeが失敗し、リモートマシンでnamenodeプロセスを起動します(元のnamenodeデータのコピーがあるので安全です)。そして、すべてのデータノードでnamenodeのipを変更します。しばらくすると、私たちは元のnamenodeを正確に前の設定で生き生きとさせることができます。リモートマシン上のnamenodeプロセスを停止します。さて、ローカルfs.name.dirはマウントされたものと同期されますか(元のnamenodeがダウンしていた間に、マウントされたdirに蓄積されたdiffを意味します)、namenodeデータの一貫性に問題がありますか?hadoopのnamenodeディレクトリは、失敗後に同期しますか?

答えて

0

ローカルfs.name.dirはマウントされたディレクトリと同期されますか(元のnamenodeがダウンしていた間にマウントされたdirに蓄積されたdiffを意味します)、またはnamenodeに問題がありますデータの一貫性?

ローカルNNデータは、ダウンしていたときに古くなっています。リモートのNN名前空間に加えられたすべての変更は、ローカルNNには存在しません。

NNにはファイルシステムの名前空間だけが格納され、名前空間とブロックIDマッピングも格納されます。ブロックが格納されている場所はNNには格納されません。 DNが開始すると、ブロックレポートがNNに送信されます。

HDFS NN HAのthisthisを確認してください。

変更するすべてのデータノードのIPアドレス。 しばらくすると、私たちは元のnamenodeを正確に以前の設定で実現します。リモートマシン上のnamenodeプロセスを停止します。

上記のシナリオでは、ダウンタイムが発生します。

関連する問題