当前位置:  开发笔记 > 大数据 > 正文

JobHistoryServer中映射时间或减少时间的含义

如何解决《JobHistoryServer中映射时间或减少时间的含义》经验,为你挑选了1个好方法。

我想知道下图中符号的确切含义.这张照片来自job history server网络用户界面.我当然知道Elapsed的意思,但我不确定其他事情.我在哪里可以找到明确的定义?或者有谁知道那些意义?

我想知道的是地图时间,减少时间,随机播放时间和合并时间.并且四个时间的总和应该与经过的时间非常相似(或相等).但"平均"关键字让我感到困惑.

Job history server的截图

有396个地图,1个减少.



1> Chaos..:

您可能已经知道,MapReduce作业分为三个阶段:

Map是第一阶段,每个Map任务都提供一个输入分割,这是总输入数据的一小部分.Map任务处理来自输入拆分和输出中间数据的数据,这些数据需要转到reducer.

随机阶段是下一步,其中由Map任务生成的中间数据被定向到正确的Reducer.Reducers通常处理Map任务生成的密钥总数的子集.Shuffle阶段将键分配给reducers并将与键相关的所有值发送到指定的reducer.排序(或合并)也是此阶段的一部分,其中给定键的值被排序并发送到reducer.您可能已经意识到,洗牌阶段涉及通过Map - > Reduce任务在网络上传输数据.

Reduce是MapReduce Job的最后一步.Reduce任务处理与密钥相关的所有值并将其结果输出到所需位置(HDFS/Hive/Hbase).

现在进入平均时间,你说有396个地图任务.每个Map任务基本上都在完成相同的处理工作,但是在不同的数据块上.因此,平均地图时间基本上是所有396个地图任务完成所用时间的平均值.

Average Map Time = Total time taken by all Map tasks/ Number of Map Tasks

同样的,

Average Reduce Time = Total time taken by all Reduce tasks/Number of Reduce tasks

现在,为什么平均时间显着?这是因为,大多数(如果不是全部)您的地图任务和减少任务将并行运行(取决于您的群集容量/每个节点的插槽数等).因此,计算所有地图任务的平均时间和减少任务将使您能够很好地了解Map或Reduce阶段的完成时间.

您的屏幕截图中的另一个观察结果是您的Shuffle阶段耗时40分钟.这可能有几个原因.

    您有396个地图任务,每个任务都生成中间数据.洗牌阶段必须通过网络将所有这些数据传递给1个减速器,从而导致大量网络流量,从而增加传输时间.也许您可以通过增加减速器的数量来优化性能.

    网络本身具有非常低的带宽,并且不能有效地处理大量数据传输.在这种情况下,请考虑部署一个组合器,它将有效地减少在地图和减少阶段之间流经网络的数据量.

还有一些隐藏的执行成本,例如作业设置时间,作业跟踪器联系任务跟踪器和分配map/reduce任务所需的时间,从节点向JobTracker发送心跳信号所花费的时间,NameNode分配存储块所花费的时间&创建输入拆分等,这些都进入总耗用时间.

希望这可以帮助.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有