gpt4 book ai didi

hadoop - 访问hadoop分布式缓存中的文件

转载 作者:可可西里 更新时间:2023-11-01 14:13:07 32 4
gpt4 key购买 nike

我想使用分布式缓存来允许我的映射器访问数据。主要是,我正在使用命令

DistributedCache.addCacheFile(new URI("/user/peter/cacheFile/testCache1"), conf);

其中/user/peter/cacheFile/testCache1是hdfs中存在的文件

然后,我的设置函数如下所示:

public void setup(Context context) throws IOException, InterruptedException{
Configuration conf = context.getConfiguration();
Path[] localFiles = DistributedCache.getLocalCacheFiles(conf);
//etc
}

但是,此 localFiles 数组始终为空。

我最初是在单主机集群上运行进行测试,但我读到这会阻止分布式缓存工作。我尝试了伪分布式,但也没有用

我正在使用 hadoop 1.0.3

谢谢彼得

最佳答案

这里的问题是我正在执行以下操作:

Configuration conf = new Configuration();
Job job = new Job(conf, "wordcount");
DistributedCache.addCacheFile(new URI("/user/peter/cacheFile/testCache1"), conf);

由于 Job 构造函数创建了 conf 实例的内部副本,因此之后添加缓存文件不会产生任何影响。相反,我应该这样做:

Configuration conf = new Configuration();
DistributedCache.addCacheFile(new URI("/user/peter/cacheFile/testCache1"), conf);
Job job = new Job(conf, "wordcount");

现在可以了。感谢 Harsh on hadoop user list 的帮助。

关于hadoop - 访问hadoop分布式缓存中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13746561/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com