【问题标题】:Hadoop MapReduce Load BalancingHadoop MapReduce 负载均衡
【发布时间】:2016-01-13 10:46:08
【问题描述】:

假设一个hadoop集群有3个slave节点和一个master节点,复制因子为2。进一步假设一个文件F被分成3个块A、B和C,它们存储如下: 从站 1:A、B 从站 2:A、C 从站 3:B、C

此外,假设您启动 map reduce 作业来计算 F 中的单词数,并且每个块被拆分 3 次。

我的问题是如何分配映射器以便优化它们以实现最大生产力?一种可能: 从属 1:3 个映射器在 A 上工作 从属 2:3 个映射器在 C 上工作 从属 3:3 个映射器在 B 上工作

但是hadoop如何避免以下情况呢? 从站 1:6 个映射器(A 上 3 个,B 上 3 个) 从站 2:空闲 从属 3:C 上的 3 个映射器

【问题讨论】:

    标签: hadoop mapreduce


    【解决方案1】:

    Map Reduce 执行由 YARN 从 Hadoop 2 开始控制,其中将有 Resource Manager (Master)Node Managers(在每个从属设备上) 节点管理器会将其每台服务器上的内存、CPU 等使用情况作为heartbeat的一部分发送到资源管理器

    现在提交作业后,客户端将与 Resource Manager 对话并创建 Application Master。 Application Master 将根据集群的使用情况创建,Resource Manager 将使用来自 Node Manager 的信息进行调用。

    一旦创建 Application Master,它将与 Namenode 对话以获取与您的输入相关联的块位置,并与 Node Managers 对话以了解集群的使用情况。在空闲集群中,每个从属服务器运行一个映射器来处理相应块的概率很高。但不能保证在高使用集群中,一个节点可能会处理所有 3 个块,而其他节点则在做一些其他的工作。

    默认情况下映射器数量将与块数相同。映射器的数量由 split size 决定,它等于 block size。您可以重置拆分大小以使用更多映射器来处理您的数据。但是,负载平衡将根据集群中的使用情况进行。它可以在 A 上运行 3 个映射器,在 B 上运行 3 个映射器,在 C 上不运行任何映射器或任何其他组合。

    【讨论】:

      猜你喜欢
      • 2013-02-23
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 2016-11-29
      • 2013-02-05
      • 2013-04-28
      相关资源
      最近更新 更多