有人知道我如何在hdfs中获得块的原始文件名吗?我正在写一个blockreplacementpolicy。当第一次写入文件时,我可以使用srcpath参数来获取文件名。然而,当复制不足的块再次被复制时,我相信srcpath不会解决我的问题。你知道我可以用来获取块(和/或块集合)文件名的类吗?提前多谢了!
3hvapo4f1#
这个 BlockManager hdfs中的服务不知道块属于哪个文件。据我所知,没有 BlockID -> INode 因为hdfs的体系结构从来就不需要它,而且仅为一些特殊目的维护它的成本很高。您可能需要自己构建这个Map,作为内部或外部服务;例如,作为一个程序,反向索引 fsimage 定期归档并提供服务。
BlockManager
BlockID
INode
fsimage
1条答案
按热度按时间3hvapo4f1#
这个
BlockManager
hdfs中的服务不知道块属于哪个文件。据我所知,没有BlockID
->INode
因为hdfs的体系结构从来就不需要它,而且仅为一些特殊目的维护它的成本很高。您可能需要自己构建这个Map,作为内部或外部服务;例如,作为一个程序,反向索引
fsimage
定期归档并提供服务。