6

私はHadoopを初めて使用し、この問題をグーグルで検索するために過去2時間を費やしましたが、役立つものは何も見つかりませんでした。私の問題は、HDFSが、ファイルへの書き込みプロセスが長い間停止しているにもかかわらず、ファイルがまだ開いていると言っていることです。これにより、ファイルからの読み取りが不可能になります。

ディレクトリでfsckを実行すると、すべてが正常であると報告されます。ただし、「hadoop fsck -fs hdfs:// hadoop / logs / raw / directory_taining_file -openforwrite」を実行すると、次のようになります。

Status: CORRUPT
 Total size:    222506775716 B
 Total dirs:    0
 Total files:   630
 Total blocks (validated):  3642 (avg. block size 61094666 B)
  ********************************
  CORRUPT FILES:    1
  MISSING BLOCKS:   1
  MISSING SIZE:     30366208 B
  ********************************
 Minimally replicated blocks:   3641 (99.97254 %)
 Over-replicated blocks:    0 (0.0 %)
 Under-replicated blocks:   0 (0.0 %)
 Mis-replicated blocks:     0 (0.0 %)
 Default replication factor:    2
 Average block replication: 2.9991763
 Corrupt blocks:        0
 Missing replicas:      0 (0.0 %)
 Number of data-nodes:      23
 Number of racks:       1

openforwriteであるファイルに対してfsckコマンドを再度実行すると、

.Status: HEALTHY
 Total size:    793208051 B
 Total dirs:    0
 Total files:   1
 Total blocks (validated):  12 (avg. block size 66100670 B)
 Minimally replicated blocks:   12 (100.0 %)
 Over-replicated blocks:    0 (0.0 %)
 Under-replicated blocks:   0 (0.0 %)
 Mis-replicated blocks:     0 (0.0 %)
 Default replication factor:    2
 Average block replication: 3.0
 Corrupt blocks:        0
 Missing replicas:      0 (0.0 %)
 Number of data-nodes:      23
 Number of racks:       1

誰かが何が起こっているのか、そしてどうすればそれを修正できるのかについて何か考えがありますか?

4

1 に答える 1

1

namenodeサーバーが一時的に利用できなくなったため、ブロックが欠落しているように見え、そのファイルのファイルシステムが破損していることがわかりました。欠落しているブロックのないファイルの部分は、まだ読み取り/コピーできるように見えました。hdfsの破損への対処に関する詳細については、https ://twiki.grid.iu.edu/bin/view/Storage/HadoopRecovery (ミラー:http ://www.webcitation.org/5xMTitU0r )を参照してください。

編集:この問題は、HDFSに書き込もうとしたときにScribe(またはより具体的にはScribeが使用するDFSClient)がハングする問題が原因であると思われます。HadoopクラスターのソースにHADOOP-6099とHDFS-278を手動でパッチし、バイナリを再構築して、新しいバージョンでクラスターを再起動しました。新しいバージョンで実行していた2か月間、問題は発生していません。

于 2011-03-22T00:11:52.500 に答える