我们知道,Map器的数量是由数据分裂定义的,那么问题来了,如果我想用mapreduce实现一个随机森林算法,每个Map器需要所有的数据。在这种情况下我该怎么办?我们能为不同的制图者“重用”数据吗?可能 setNumMapTasks 作品?我对这个函数非常困惑,我几乎找不到任何关于它如何与由数据分割数决定的Map器自然数相对应的信息。非常感谢。
setNumMapTasks
qlfbtfca1#
Side data 是所有Map绘制者共享的数据。作为作业设置的一部分,您需要将数据广播到Map器。这是通过 DistributedCache https://hadoop.apache.org/docs/r2.6.2/api/org/apache/hadoop/filecache/distributedcache.html .这里是一些代码的起点。首先通过 Job 班级:
Side data
DistributedCache
Job
job.addCacheFile(new URI("<your file location>"));
在mapper/reducer中,您可以通过普通文件系统api访问文件:
File file = new File("<my file name>");
1条答案
按热度按时间qlfbtfca1#
Side data
是所有Map绘制者共享的数据。作为作业设置的一部分,您需要将数据广播到Map器。这是通过
DistributedCache
https://hadoop.apache.org/docs/r2.6.2/api/org/apache/hadoop/filecache/distributedcache.html .这里是一些代码的起点。首先通过
Job
班级:在mapper/reducer中,您可以通过普通文件系统api访问文件: