我目前正在尝试向分布式缓存添加两个文件。然而,当我尝试读取它时,第二个文件读取的数据与第一个文件相同,尽管这两个文件包含完全不同的数据。知道为什么会发生这种事吗?
这很可能是您实际配置作业,然后在Mapper中访问它们的方式。当你准备工作时,你会做一些类似的事情
job.addCacheFile(new Path("cache/file1.txt").toUri());
job.addCacheFile(new Path("cache/file2.txt").toUri());
然后在你的映射程序代码中,url将被存储在一个数组中,可以像这样访问
URI file1Uri = context.getCacheFiles()[0];
URI file2Uri = context.getCacheFiles()[1];
如果访问文件的过程不起作用,那么实际文件可能会出现问题。