gpt4 book ai didi

hadoop - 什么决定了 MapReduce 应用程序的本地化率?

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

在运行 MapReduce 应用程序(例如排序与字数)时,我注意到局部性比率可能不同。

本地化率如何取决于应用程序和输入文件?
为什么有些应用程序的本地化率比其他应用程序高?

最佳答案

看看Yarn tutorial

yarn

当 YARN 通过检查资源可用性来选择节点管理器时,如果该节点管理器与存储数据的数据节点不同,则数据局部性概念被打破。在这种情况下,数据将通过网络从一个节点传输到另一个节点。发生此事件的原因:节点管理器很忙并且受 CPU 和内存要求的限制。

假设已经为 Map 作业识别了一个特定的节点管理器来读取数据。但是如果数据跨越多个节点,那么数据应该在节点之间传输。

Hadoop 在 Map reduce 框架中使用逻辑拆分而不是物理拆分。输入拆分取决于记录的写入位置。

假设一个数据节点中的 DFS block 大小为 64 MB。如果由于大小限制,该 block 中的最后一条记录未完全写入。假设行的一半已写入数据节点 1 (1 MB),其余一半已写入数据节点 2(另外一个 64 MB DFS block 中的 1 MB 数据)。

在 Map reduce 作业处理过程中,数据节点 2 的数据将通过网络传输,完成逻辑拆分。

看看我在其他一些 SE question 上的帖子,这很好地解释了输入拆分过程。

来自 Apache Map reduce tutorial

多少张 map ?

映射的数量通常由输入的总大小驱动,即输入文件的总 block 数。

多少个 reducer ?

Reducer 将一组中间值减少为一组较小的值,这些值共享一个键。作业的减少次数由用户通过 Job.setNumReduceTasks(int 设置。 )。

假设 Mappers 输出已准备就绪。如果 Mapper 节点和 Reducer 节点不同,则数据将通过网络传输。 Hadoop 框架决定了给定 Hadoop 作业的映射器数量和 reducer 数量。

关于hadoop - 什么决定了 MapReduce 应用程序的本地化率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34042800/

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