【问题标题】:Hadoop/map-reduce: Total time spent by all maps in occupied slots vs. Total time spent by all map tasksHadoop/map-reduce:所有地图在占用槽中花费的总时间与所有地图任务花费的总时间
【发布时间】:2015-03-04 18:02:53
【问题描述】:

背景:我正在分析 AWS Hadoop 作业在各种集群配置上的性能,一些 Hadoop 计数器令人困惑。

问题:“所有地图在占用槽中花费的总时间”和“所有地图任务花费的总时间”有什么区别? (对于减少同样的问题)。为简洁起见,我们将这些计数器称为 mapO、mapT、redO 和 redT。这是我在三种不同的配置中看到的(每种都有不同数量的核心/从节点):

1) 对于 AWS/EMR 作业(Hadoop 2.4.0-amzn-3),mapO / mapT 的比率始终为 6.0,redO / redT 的比率始终为 12.0。

2) 对于使用实例存储手动安装的 Hadoop (Hadoop 2.4.0.2.1.5.0-695),mapO/mapT 的比率始终为 1.0,但 redO/redT 的比率有时为 1.0,有时为 2.0。

3) 对于手动安装的使用 EBS 存储的 Hadoop,mapO/mapT 的比率始终为 1.0,redO/redT 的比率始终为 2.0。

我假设其他配置会有不同的比率,但这些计数器/计时器实际测量的是什么?

我购买了 Tom White 出色的“Hadoop”书(第 3 版),但没有特别提到 mapO 或 redO 计数器或一般的“占用槽”。

我还在 hadoop.apache.com 上运行了大量的 Google 搜索并查看了数十个页面。我的 MacBook 上也有(并运行)hadoop 并搜索了这些计数器的代码但找不到它(我确定它在那里但是??)。

正如在相关(且未回答)的问题中所述,令人惊讶和奇怪的是,即使是对这些基本计数器的基本描述也不容易获得。

【问题讨论】:

    标签: apache hadoop amazon-web-services


    【解决方案1】:

    在代码中,“所有映射在占用槽中花费的总时间(毫秒)”由 JobCounter.java 中的枚举 SLOTS_MILLIS_MAPS(或 SLOTS_MILLIS_REDUCES)表示。这些常量已被弃用。他们通过将任务持续时间乘以用于 map 任务的 MB 与一个纱线槽所需的最小 MB 的比率来得到他们的数字。

    因此,如果您的地图任务使用 4 MB 并且最小插槽大小为 1 MB,那么您的任务需要 4*duration 时间,而这本来可以用于其他任务。这可以解释为什么您会看到不同设置的不同比率。我认为该指标并不是特别有用(尤其是因为如果不深入研究代码甚至不清楚它的含义)。

    【讨论】:

    • 谢谢。您不仅回答了我的问题,还给我指出了源文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 2014-03-29
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    相关资源
    最近更新 更多