Java 在位于同一台计算机上的所有地图任务之间共享数据

Java 在位于同一台计算机上的所有地图任务之间共享数据,java,mapreduce,share,Java,Mapreduce,Share,在同一台机器上运行的所有映射任务都可以从共享内存中获益,但如何受益呢? 更具体地说,我想在所有位于同一台机器上的映射任务之间共享一个哈希表。我的问题是什么是最好的方法?我尝试了JavaRMI,但它的性能对我来说是不可接受的。 如有任何建议,将不胜感激 非常感谢。如果您使用的是hadoop,您可以在一台机器上配置map节点和reduce节点 如上所述,您需要共享一个哈希表。据我所知,您可能需要将此哈希表转换为hadoop可识别的格式,然后编写映射并减少任务,最后执行一些单节点运行配置,hadoop

在同一台机器上运行的所有映射任务都可以从共享内存中获益,但如何受益呢? 更具体地说,我想在所有位于同一台机器上的映射任务之间共享一个哈希表。我的问题是什么是最好的方法?我尝试了JavaRMI,但它的性能对我来说是不可接受的。 如有任何建议,将不胜感激


非常感谢。

如果您使用的是
hadoop
,您可以在一台机器上配置map节点和reduce节点

如上所述,您需要共享一个哈希表。据我所知,您可能需要将此哈希表转换为
hadoop
可识别的格式,然后编写映射并减少任务,最后执行一些单节点运行配置,
hadoop
将完成此工作

这里不是hadoop的专家,只是我的理解


另一方面,您可以使用线程来处理此问题。

谢谢您的回复,但我不想在map和reduce任务之间共享数据。我只想在驻留在同一台机器上的映射任务之间共享哈希表。此外,我不能使用线程,因为映射任务是在不同的JVM上执行的,我知道。