【问题标题】:How containers are assigned in YARN?在 YARN 中如何分配容器?
【发布时间】:2014-11-11 01:11:50
【问题描述】:

在 Mapreduce 1 中,Jobtracker 从 NameNode 获取 Block 信息,然后将 Task(最有可能)分配给 Task Tracker,这些 Task Tracker 在与存在 Datablock 的节点相同的节点中可用。在那里可以提高性能。

这是如何在 YARN 中处理的? Application Manager 是否负责从 NameNode 获取块信息?

如果是这样,容器如何分配给那些应用程序主?资源管理器在分配容器时是否考虑了数据块的位置?还是随机分配节点中的任何容器?

【问题讨论】:

    标签: hadoop mapreduce hadoop-yarn


    【解决方案1】:

    从技术上讲,JobClient 的作用是计算input splits,此拆分信息放置在 HDFS 中,ApplicationMaster 将从那里挑选它并在从 ResourceManager 请求容器时使用此信息。

    因此,从技术上讲,Application Master 在为所有地图任务请求容器时,将有关每个地图任务数据位置的信息传递给 ResourceManager。调度程序使用此信息做出调度决策,尝试将任务分配到数据本地。

    【讨论】:

    • 我可以手动分配容器吗?我的 custer 中有 10 个 InputSplits 和 20 个节点。每个 Inputsplit 将在一个节点上运行。 10 个节点将处于空闲状态。有没有办法将这些节点也用于 10 个 InputSplits?插槽是如何出现在这张图片中的?
    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    相关资源
    最近更新 更多