在给定块名称/ ID
的情况下,在HDFS中查找与块关联的文件的最简单方法是什么?答案 0 :(得分:11)
不确定何时推出此功能
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
答案 1 :(得分:10)
漫长而痛苦的方式,假设您具有对所有文件的读取权限(并为目录执行):
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 ...是/hadoop/mapred/system/jobtracker.info
文件
以编程方式,这些不是名称节点的接口,允许您按块ID进行搜索,但您可以查看辅助名称节点的源,并查看它如何合并编辑 - 然后在保存的输出上进行实验来自辅助名称节点(而不是冒着使用实时名称节点文件的风险)。
祝你好运!