gpt4 book ai didi

hadoop - MapReduce shuffle 阶段瓶颈

转载 作者:可可西里 更新时间:2023-11-01 16:30:02 26 4
gpt4 key购买 nike

我正在阅读原始的 MapReduce 论文。我的理解是,当处理数百 GB 的数据时,传输如此多数据的网络带宽可能成为 MapReduce 作业的瓶颈。对于 map 任务,我们可以通过在已经包含任何给定拆分数据的 worker 上安排 map 任务来减少网络带宽,因为从本地磁盘读取不需要网络带宽。

然而,shuffle 阶段似乎是一个巨大的瓶颈。 reduce 任务可能会从所有 map 任务接收中间键/值对,并且几乎所有这些中间键/值对都将通过网络流式传输。

当处理数百 GB 或更多的数据时,有必要使用组合器来实现高效的 MapReduce 作业吗?

最佳答案

如果 Combiner 可以适应这种情况,它会发挥重要作用,它就像一个本地 reducer,因此它不会发送所有数据,而是只发送少量值或本地聚合值,但不能在所有情况下应用组合器。

如果 reduce 函数既是交换函数又是结合函数,那么它可以用作 Combiner。

就像 Median 的情况一样,它不会起作用。

Combiner 并非适用于所有情况。

还有其他可以调整的参数,例如:

当 map 发出输出时,它不会直接进入磁盘,而是进入 100 MB 的循环缓冲区,当填充到 80% 时,它会将记录溢出到磁盘中。

因此您可以增加缓冲区大小并增加阈值保持值,在这种情况下溢出会更少。

如果溢出太多,那么溢出将合并为一个文件,我们可以使用溢出因子进行播放。

有很多线程将数据从本地磁盘复制到 reducer jvm,因此可以增加它们的数量。

压缩可用于中间层和最终层。

所以Combiner不是唯一的解决方案,不会在所有情况下都使用。

关于hadoop - MapReduce shuffle 阶段瓶颈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38208974/

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