在多个map()和reduce()调用之间共享数据

问题描述 投票:0回答:1

我需要在map()和reduce()之间共享一个HashMap对象。

说明:我希望map()检索并更新HashMap中当前键的一些数据。我希望reduce()能够查看当前键与过去的键值相比是否具有最大值。

并且在最后一个键值对上(我打算为此使用HashMap.size()和一个静态整数计数器),我将打印具有最大值的键值对。

所以基本上,我需要在map()和reduce()之间共享一个HashMap对象,然后在reduce()调用之间共享一个整数变量。

有帮助吗?

java hadoop mapreduce hdfs
1个回答
0
投票

并不是真正打算使用mapreduce的方式...如果在映射器中创建任何Hashmap,则每个映射器将有一个hashmap,并且可以同时运行数千个Map任务。所有的reducer任务都不知道要检查哪个Hashmap,并且没有明确的步骤来合并它们

例如,将数据外部化为Redis可能会更好

© www.soinside.com 2019 - 2024. All rights reserved.