繁体   English   中英

Hadoop / map-reduce:占用的插槽中所有地图所花费的总时间与所有地图任务所花费的总时间

[英]Hadoop/map-reduce: Total time spent by all maps in occupied slots vs. Total time spent by all map tasks

背景:我正在分析各种集群配置上的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计数器,也没有提到“占用的插槽”。

我还运行了很多Google搜索,并在hadoop.apache.com上浏览了数十个页面。 我还在MacBook上运行了hadoop,并搜索了这些计数器的代码,但找不到它(我确定它在那里,但??)。

正如在一个相关的(未回答的)问题中所指出的那样,令人惊讶且奇怪的是,即使这些基本计数器的基本描述也无法轻易获得。

在代码中,“ JobCounter.java中的SLOTS_MILLIS_MAPS(或SLOTS_MILLIS_REDUCES)枚举表示“所有地图在占用的插槽中所花费的总时间(ms)”。 这些常量已弃用。 他们通过将任务持续时间乘以用于映射任务的MB与一个纱槽所需的最小MB之比乘以得到其编号。

因此,如果您的地图任务使用了4 MB,最小插槽大小是1 MB,那么您的任务将花费4 *的时间来进行其他任务。 这可以解释为什么您在不同的设置中看到不同的比率。 我认为该指标不是特别有用(特别是因为如果不深入研究代码,甚至不清楚它的含义)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM