HDFSのデータブロックの場所確認方法
Hadoopのクラスターを構成してデータを入れると、実際にはどこに入ってるのかな?と思うことがあります。
例えばレプリケーション3にしてて、3つのレプリカがあるノードを全部停止したらほんとに読み込めなくなるのかな?といった確認をしたいとき、どこにレプリカがあるのか知りたくなります。
そんな時下記のコマンドでこんなパラメーターをつければわかります。
hdfs fsck /myfile.txt -files -blocks -locations
すでに似たようなことで悩んでる人がいるんですね。
https://community.cloudera.com/t5/Support-Questions/hdfs-file-actual-block-paths/m-p/121411
こんな実行結果がでてきます。
IPなどすべて書き換えていますんで、重要なところ以外はちょっと変なところあるかもしれません。
$ hdfs fsck /myfile.txt -files -blocks -locations
Connecting to namenode via http://namenode01:9870/fsck?files=1&blocks=1&locations=1&path=%2Fmyfile.txt
FSCK started by hdfs (auth:SIMPLE) from /11.22.33.44 for path /myfile.txt at Fri Aug 31 12:18:04 JST 2019
/myfile.txt 1468474 bytes, replicated: replication=3, 1 block(s): OK
0. BP-119823210215-11.22.33.81-15634343520673:blk_10737324538_402314 len=1468474 Live_repl=3 [DatanodeInfoWithStorage[11.22.33.08:9866,DS-f15a6a7a-01bd-2351-ade9-92a346adbe35,DISK], DatanodeInfoWithStorage[11.22.33.12:9866,DS-6a12346b0-74a9-4ee9-a439-f1e2b015t420f,DISK], DatanodeInfoWithStorage[11.22.33.10:9866,DS-f003dc91-8d8a-4c64-ac71-03451f69f7c0,DISK]]
Status: HEALTHY
Number of data-nodes: 10
Number of racks: 1
Total dirs: 0
Total symlinks: 0
Replicated Blocks:
Total size: 1468474 B
Total files: 1
Total blocks (validated): 1 (avg. block size 1468474 B)
Minimally replicated blocks: 1 (100.0 %)
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
Missing blocks: 0
Corrupt blocks: 0
Missing replicas: 0 (0.0 %)
Blocks queued for replication: 0
Erasure Coded Block Groups:
Total size: 0 B
Total files: 0
Total block groups (validated): 0
Minimally erasure-coded block groups: 0
Over-erasure-coded block groups: 0
Under-erasure-coded block groups: 0
Unsatisfactory placement block groups: 0
Average block group size: 0.0
Missing block groups: 0
Corrupt block groups: 0
Missing internal blocks: 0
Blocks queued for replication: 0
FSCK ended at Fri Aug 31 12:18:04 JST 2019 in 1 milliseconds
実行結果の上から4行目のここ
[DatanodeInfoWithStorage[11.22.33.08:9866,DS-f15a6a7a-01bd-2351-ade9-92a346adbe35,DISK], DatanodeInfoWithStorage[11.22.33.12:9866,DS-6a12346b0-74a9-4ee9-a439-f1e2b015t420f,DISK], DatanodeInfoWithStorage[11.22.33.10:9866,DS-f003dc91-8d8a-4c64-ac71-03451f69f7c0,DISK]]
で実際のノードがわかります。
整形してみると
[
DatanodeInfoWithStorage[11.22.33.08:9866,DS-f15a6a7a-01bd-2351-ade9-92a346adbe35,DISK],
DatanodeInfoWithStorage[11.22.33.12:9866,DS-6a12346b0-74a9-4ee9-a439-f1e2b015t420f,DISK],
DatanodeInfoWithStorage[11.22.33.10:9866,DS-f003dc91-8d8a-4c64-ac71-03451f69f7c0,DISK]
]
11.22.33.08
11.22.33.12
11.22.33.10
に保管されていることがわかりますね。
以上マイナーな情報でしたー
関係ないですが上記のコマンドでErasure Codingの情報も出てくるんですね。
Author And Source
この問題について(HDFSのデータブロックの場所確認方法), 我々は、より多くの情報をここで見つけました https://qiita.com/suganoooo/items/2757760727f3ca038b79著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .