在给定数据块名称/ID的情况下,在HDFS中查找与数据块关联的文件的最简单方法是什么
nsc4cvqm1#
不确定这是什么时候推出的,但你可以这样做
hdfs fsck -blockId <block_id> hdfs fsck -blockId blk_1100790203 Connecting to namenode FSCK started by hdfs Block Id: blk_1100790203 Block belongs to: /tmp/1447685899336.txt
dzjeubhm2#
假设您对所有文件都具有读访问权限(并对目录具有执行权限),那么漫长而痛苦的方法是:
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搜索的名称节点接口,但您可以查看辅助名称节点的源代码,并查看它如何合并编辑-然后在辅助名称节点的已保存输出上进行试验(而不是冒险处理活动名称节点文件)。祝你好运!
/hadoop/mapred/system/jobtracker.info
k3bvogb13#
选项1:如果将blockId与generationStamp一起使用,则需要后缀.meta
.meta
$ hdfs fsck -blockId blk_1073823706_82968.meta
选项2:使用不带generationStamp的blockId
$ hdfs fsck -blockId blk_1073823706
3条答案
按热度按时间nsc4cvqm1#
不确定这是什么时候推出的,但你可以这样做
dzjeubhm2#
假设您对所有文件都具有读访问权限(并对目录具有执行权限),那么漫长而痛苦的方法是:
然后从块匹配项向上扫描到上一个文件名:
在本例中,blk_5202...是
/hadoop/mapred/system/jobtracker.info
文件的一部分从编程上讲,这些不是允许您按块ID搜索的名称节点接口,但您可以查看辅助名称节点的源代码,并查看它如何合并编辑-然后在辅助名称节点的已保存输出上进行试验(而不是冒险处理活动名称节点文件)。
祝你好运!
k3bvogb13#
选项1:如果将blockId与generationStamp一起使用,则需要后缀
.meta
选项2:使用不带generationStamp的blockId