本地化指在TaskTracker上为作业和任务构造一个运行环境,包括创建作业和任务的工作目录,从HDFS上下载运行任务相关的文件,可分为作业本地化和任务本地化。
作业的第一个任务负责为该作业本地化,后续任务负责任务本地化。
启动任务为了避免不同任务之间相互干扰,TaskTracker为各个任务启动了独立的JVM,JVM相当于包含一定资源量的容器,每个任务可在该容器内使用其资源运行。
JVM启动过程:
- 如果已启动JVM数目低于上限数目(Map slot或者Reduce slot数目),则直接启动JVM。否则进入下一步
- 查找当前TaskTracker所有已经启动的JVM,找出满足下面条件的JVM:①当前状态空闲②复用次数未超过上限次数③与将要启动的任务同属一个作业,如果找到这样的JVM,则可继续复用而无需启动新的JVM,否则进入下一步。
- 查找当前TaskTracker所有已经启动的JVM,如果满足下面条件,则直接将该JVM杀掉,启动一个新的JVM:①复用次数已达到上线数目且与新任务同属一个作业②当前处于空闲状态但与新任务不属于一个作业。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)