gpt4 book ai didi

hadoop - 在 hadoop 中加入 vs 分布式缓存

转载 作者:可可西里 更新时间:2023-11-01 14:47:06 24 4
gpt4 key购买 nike

hadoop 中的连接和分布式缓存有什么区别。我真的很困惑 map-side join 和 reduce-side join 以及它的工作原理。在处理 mapreduce 作业中的数据时,分布式缓存有何不同。请分享例子。问候,拉维

最佳答案

假设您有 2 个包含以下记录的数据文件:

单词 -> 频率

两个文件中可以存在相同的词。您的任务是合并这些文件,计算每个术语的总频率,并生成聚合文件。

map 端连接。

当连接两边的数据已经按键预排序时很有用。在这种情况下,它是两个具有线性复杂度的流的简单合并。在我们的示例中,我们的词频数据必须按两个文件中的词的字母顺序进行预排序。

优点: 可处理几乎无限的输入数据(不必适合内存)。不需要 reducer ,因此非常高效。

缺点:需要对输入数据进行预排序(例如,作为先前 map/reduce 作业的结果)

减少连接。

当我们的文件尚未排序并且它们太大而无法放入内存时很有用。因此,您必须使用带有 reducer 的分布式排序来合并它们。

优点: 可处理几乎无限的输入数据(不必适合内存)。

缺点:需要 reduce 阶段

分布式缓存。

当我们的输入词频文件未排序并且两个文件之一足够小以适合内存时很有用。在这种情况下,您可以将其用作分布式缓存,并将其作为哈希表 Map 加载到内存中。每个映射器都会将最大的输入文件作为键值对进行流式传输,并从 HashMap 中查找较小文件的值。

优点:基于最大输入集大小的高效线性复杂度。不需要 reducer 。

缺点:需要其中一个输入适合内存。

关于hadoop - 在 hadoop 中加入 vs 分布式缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28117289/

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