为什么映射器的运行时间应该超过1分钟?

时间:2015-09-24 04:45:20

标签: hadoop mapper

我已阅读许多声明

的博客/网页
  

映射器的运行时间应超过X分钟

我知道设置映射器需要管理费用,但这究竟是如何计算出来的?为什么在X分钟之后,开销是合理的呢?当我们讨论开销时,Hadoop的开销是多少?

1 个答案:

答案 0 :(得分:0)

它不是一个硬代码规则,但有道理。在后台,在映射器启动之前处理了很多小进程。它的初始化,除了真正的处理之外的其他东西本身需要10-15秒。因此,为了减少分割数量,这反过来会减少映射器数量,maxsplitsize可以设置为某个更高的值,这是博客传达的。如果我们不这样做。以下是MR框架在创建映射器时必须处理的开销。

  1. 计算该映射器的拆分。
  2. jobtracker中的作业调度程序必须创建一个分离映射任务,这会稍微增加延迟。
  3. 在分配时,jobtracker必须根据其数据位置查找tasktracker。这将再次涉及在tasktracker中创建本地临时目录,该目录将由该映射器的设置和清理任务使用,例如在设置中如果我们从分布式缓存中读取并将其放入哈希映射或初始化和清理在mapper中有一些东西。如果已经有足够的地图并减少在该任务跟踪器中运行的任务,这将给任务跟踪器带来一些开销。
  4. 在最坏的情况下,固定地图任务的数量已满,那么JT将不得不寻找一个不同的TT,这将导致远程读取。
  5. 此外,TT只会在3秒钟内将心跳发送给JT,这会导致作业初始化延迟,因为TT必须联系JT才能运行作业以及发送完成状态。
  6. 不幸的是,如果您的映射器失败,那么该任务将在最终失败之前运行3次。