TaskTracker内部原理——启动新任务

TaskTracker内部原理——启动新任务,第1张

TaskTracker内部原理——启动新任务 任务启动过程 作业本地化

本地化指在TaskTracker上为作业和任务构造一个运行环境,包括创建作业和任务的工作目录,从HDFS上下载运行任务相关的文件,可分为作业本地化和任务本地化。

作业的第一个任务负责为该作业本地化,后续任务负责任务本地化。

启动任务

为了避免不同任务之间相互干扰,TaskTracker为各个任务启动了独立的JVM,JVM相当于包含一定资源量的容器,每个任务可在该容器内使用其资源运行。
JVM启动过程:

  • 如果已启动JVM数目低于上限数目(Map slot或者Reduce slot数目),则直接启动JVM。否则进入下一步
  • 查找当前TaskTracker所有已经启动的JVM,找出满足下面条件的JVM:①当前状态空闲②复用次数未超过上限次数③与将要启动的任务同属一个作业,如果找到这样的JVM,则可继续复用而无需启动新的JVM,否则进入下一步。
  • 查找当前TaskTracker所有已经启动的JVM,如果满足下面条件,则直接将该JVM杀掉,启动一个新的JVM:①复用次数已达到上线数目且与新任务同属一个作业②当前处于空闲状态但与新任务不属于一个作业。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5638842.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存