gpt4 book ai didi

hadoop - 使用 Hadoop MapReduce 的连接操作

转载 作者:行者123 更新时间:2023-12-02 21:54:12 24 4
gpt4 key购买 nike

如何使用 Map Reduce 连接两个记录集?大多数解决方案(包括发布在 SO 上的解决方案)都建议我根据公共(public)键发出记录,并在 reducer 中将它们添加到 HashMap 中,然后采用叉积。 (例如 Join of two datasets in Mapreduce/Hadoop )

这个解决方案非常好,适用于大多数情况,但就我而言,我的问题完全不同。我正在处理一个拥有数十亿条记录的数据,并且不可能对两组进行叉积,因为在许多情况下,哈希图最终将拥有几百万个对象。所以我遇到了堆空间错误。

我需要一个更有效的解决方案。 MR 的重点是处理大量数据,我想知道是否有任何解决方案可以帮助我避免这个问题。

最佳答案

不知道这是否仍然与任何人相关,但这些天我面临着类似的问题。我的意图是使用键值存储,最有可能是 Cassandra,并将其用于交叉产品。这表示:

在 A 类线路上运行时,在 Cassandra 中查找 key 。如果存在 - 将 A 记录合并到现有值(B 元素)中。如果不是 - 创建一个键,并添加 A 元素作为值。

在 B 类线路上运行时,在 Cassandra 中查找 key 。如果存在 - 将 B 记录合并到现有值(A 元素)中。如果不是 - 创建一个键,并添加 B 元素作为值。

这将需要额外的 Cassandra 服务器,并且可能需要一些磁盘空间,但由于我在云中运行(谷歌的 bdutil Hadoop 框架),所以不要认为这应该是一个很大的问题。

关于hadoop - 使用 Hadoop MapReduce 的连接操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16633250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com