Pivotal Knowledge Base

フォローする

fsck出力の「Default replication factor」及び「Average block replication」について

環境

製品 バージョン
Pivotal Hadoop 2.x、3 .x
OS RHEL 6.x

事象

デフォルトのレプリケーション数(dfs.replication)変更後、HDFS fsckの出力で、「Default replication factor」と「Average block replication」の値に相違がある。

Status: HEALTHY
 Total size:    839729774 B
 Total dirs:    139
 Total files:   600
 Total symlinks:                0
 Total blocks (validated):      596 (avg. block size 1408942 B)
 Minimally replicated blocks:   596 (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:          3
 Number of racks:               1

原因

「Default replication factor」には、新規ブロック作成時のレプリケーション数を指定する。既存ブロックのレプリケーション数を変えるパラメータではない。

上述の例の場合、HDFS稼働開始当初は、レプリケーション数が3で、HDFSに保存されたブロックはそれぞれ3つのレプリカを保持、したがって「Average block replication」(ブロックレプリケーション数の平均)が3となっているものと考えられる。その後dfs.replicationが2に変更され、新しくHDFSに保存されるブロックは2つだけレプリカが保持されるようになっている。新しいレプリケーション数で保存されるブロックが増えると共に、「Average block replication」がdfs.replicationの値に近付いていく。

解決策

この相違は障害ではなく仕様による挙動である。

こちらの記事では、HDFS上の既存ファイルのレプリケーション数を変更する方法を記載している。

HDFS fsckを再実行し、当該処理が完了すると、「Average block replication」が「Default replication factor」と一致することになる。

Status: HEALTHY
 Total size:    839729774 B
 Total dirs:    139
 Total files:   600
 Total symlinks:                0
 Total blocks (validated):      596 (avg. block size 1408942 B)
 Minimally replicated blocks:   596 (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:     2.0
 Corrupt blocks:                0
 Missing replicas:              0 (0.0 %)
 Number of data-nodes:          3
 Number of racks:               1

追加情報

HDFSに関する情報 - どうやってHDFS上にあるファイルのデフォルトレプリケーション数を確認するのか?

コメント

Powered by Zendesk