как найти файл из blockName в HDFS hadoop

каков самый простой способ найти файл, связанный с блоком в HDFS с именем блока / ID

2 ответов


долгий и болезненный путь, предполагая, что у вас есть доступ для чтения ко всем файлам (и выполнить для каталогов):

hadoop fsck / -files -blocks | grep blk_520275863902385418_1002 -B 20

затем отсканируйте резервную копию с вашего блочного соответствия предыдущему имени файла:

/hadoop/mapred/system/jobtracker.info 4 bytes, 1 block(s):  OK
0. blk_520275863902385418_1002 len=4 repl=1

В этом случае blk_5202... является частью

программно это не интерфейс к узлу имени, который позволяет выполнять поиск по идентификатору блока, но вы можете посмотреть в источник для вторичного узла имени и посмотреть, как он консолидирует изменения-затем поэкспериментируйте с сохраненным выводом из узла вторичного имени (вместо того, чтобы рисковать работой над файлом узла live name).

удачи!


Не уверен, когда это было введено, но вы можете сделать это

hdfs fsck -blockId <block_id>

hdfs fsck -blockId blk_1100790203
Connecting to namenode 
FSCK started by hdfs 

Block Id: blk_1100790203
Block belongs to: /common/FFL1447685899336.txt