【问题标题】:Reading multiple files to Distributed Cache in map -reduce在 map -reduce 中读取多个文件到分布式缓存
【发布时间】:2015-03-04 13:43:50
【问题描述】:

我目前正在尝试将两个文件添加到分布式缓存。但是,当我尝试读取它时,第二个文件正在读取与第一个文件相同的数据,尽管这两个文件包含完全不同的数据。知道为什么会这样吗?

【问题讨论】:

    标签: mapreduce distributed-cache


    【解决方案1】:

    这很可能是您实际配置作业然后在 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];
    

    如果访问文件的过程不起作用,则实际文件可能存在问题。

    【讨论】:

    • 我正在使用分布式缓存。但是当我尝试使用以下方法读取两个文件时: Path p1=DistributedCache.getLocalCacheFile(context.getConfiguration())[0];路径 p2=DistributedCache.getLocalCacheFile(context.getConfiguration())[1];然后两个路径的值是相同的,虽然我添加了两个不同的文件
    • 你将不得不做一些调试一段时间。只需尝试一些操作,例如添加更多缓存文件或打印出分布式缓存的所有结果。
    猜你喜欢
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多