java - Hadoop DistributedCache 已弃用 - 首选 API 是什么?

标签 java hadoop mapreduce

我的 map task 需要一些配置数据,我想通过分布式缓存分发这些数据。

Hadoop MapReduce Tutorial显示 usage DistributedCache类的,大致如下:

// In the driver
JobConf conf = new JobConf(getConf(), WordCount.class);
...
DistributedCache.addCacheFile(new Path(filename).toUri(), conf); 

// In the mapper
Path[] myCacheFiles = DistributedCache.getLocalCacheFiles(job);
...

但是,DistributedCachemarked as deprecated在 Hadoop 2.2.0 中。

实现这一目标的新首选方法是什么?是否有涵盖此 API 的最新示例或教程?

最佳答案

分布式缓存的 API 可以在 Job 类本身中找到。在此处查看文档:http://hadoop.apache.org/docs/stable2/api/org/apache/hadoop/mapreduce/Job.html 代码应该类似于

Job job = new Job();
...
job.addCacheFile(new Path(filename).toUri());

在您的映射器代码中:

Path[] localPaths = context.getLocalCacheFiles();
...

关于java - Hadoop DistributedCache 已弃用 - 首选 API 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21239722/

相关文章:

hadoop - Hadoop与数据库有何不同?

hadoop - Reducers 如何在 Hadoop 中收集 map 输出

java - 一个 MapReduce 程序的输出作为另一个 MapReduce 程序的输入

hadoop - MapReduce Reducer 的 KeyOut 类型

hadoop - 将S3 Loaction作为参数传递给hadoop jar

java - Mongodb 架构

java - 将Hadoop FS中的所有JARS添加到MapReduce类路径

java - 延迟批处理文件的运行

java - 查找当前打开的屏幕窗口

java - Eclipse 4 RCP应用程序创建C编辑器