如何对所有Map器使用相同的数据?

nmpmafwu  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(490)

我们知道,Map器的数量是由数据分裂定义的,那么问题来了,如果我想用mapreduce实现一个随机森林算法,每个Map器需要所有的数据。在这种情况下我该怎么办?我们能为不同的制图者“重用”数据吗?
可能 setNumMapTasks 作品?我对这个函数非常困惑,我几乎找不到任何关于它如何与由数据分割数决定的Map器自然数相对应的信息。
非常感谢。

qlfbtfca

qlfbtfca1#

Side data 是所有Map绘制者共享的数据。作为作业设置的一部分,您需要将数据广播到Map器。
这是通过 DistributedCache https://hadoop.apache.org/docs/r2.6.2/api/org/apache/hadoop/filecache/distributedcache.html .
这里是一些代码的起点。首先通过 Job 班级:

job.addCacheFile(new URI("<your file location>"));

在mapper/reducer中,您可以通过普通文件系统api访问文件:

File file = new File("<my file name>");

相关问题