摘要:OverviewTaskAttempt 对像将是我们的task最后真正执行的地方,前面的所有的工作都是为了让我们的Attempt服务, 在Attempt被创建出来之后,Attemp开始等待SChedule 或ReSchedule 事件, 该事件将由Taskimpl对像触发。图 1-1T_SCHEDULE AND T_RESCHEDULE Handle当Attempt收到该 事件后,Attempt首先通知所有Speculator 将要申请 container, 然后 向 ContainerAlloctor 申请container来运行当前的task: // Tell any speculator
阅读全文
摘要:Overview图 1-1当Task 被创建出来之后,处于NEW 状态,并等待 T_SCHEDULE 事件,该事件将由Job对像触发。T_SCHEDULE Handle在Task收到该 事件后,首先会创建一个Attempt对像并注册,该 对像将用来,执行并跟踪task的执行,对Map task 和Reduce task 分别各自不同的实现,这里以Map为例: TaskAttemptImpl attempt = createAttempt(); attempt.setAvataar(avataar); if (LOG.isDebugEnabled()) { LOG.d...
阅读全文
摘要:Overview图 1-1JOB_INIT HANDLE当Job收到JOB_INIT事件之后,Job开始初始自己:图 2-1首先,Job要setup相应配置信息,包括,Job submit id, 提交时的目录, 运行job所需的配置文件,安全信息; String oldJobIDString = job.oldJobId.toString(); String user = UserGroupInformation.getCurrentUser().getShortUserName(); Path path = MRApps.getStagingAre...
阅读全文
摘要:OverviewMRAppMaster 初始化成功之后, Master 开始根据运行时的配置信息加Job并为之请求Container执行任务。Start Job 图 1-1图 1-2Code: amInfos = new LinkedList(); completedTasksFromPreviousRun = new HashMap(); processRecovery(); // Current an AMInfo for the current AM generation. AMInfo amInfo = MRBuilderUtils.n...
阅读全文
摘要:OverviewApplicationMaster 是运MapReduce 任务的中间核心组组件,主要负责向ResourceManager请求Container来运行任务,并监视任务的执行:图 1-1上图展示了,ApplicationMaster 在初始化的时候,做了哪 些事情, 当一个新的任务提交的时候,ApplicationMaster会依次启动下列的Service:Dispatcher:AsyncDispatcherclientService:MRClientServiceCommitterEventHandler Service:CommitterEventHandlerTaskAtt
阅读全文
摘要:OverviewHadoop 的任务是通过Job对像提交到系统处理的,所以Job对像带有一切运行任务所需要的信息。下图展示了,Job运行过程所经历的所有阶段:图 1-1在配置 完Job对像之后,Job会首初始化一个Cluster对像,用来保存Cluster相关的信息,包括用来与ResourceManager通信的客户端:图 1-2Cluster对像初始化的时候,会先去寻找 ClientProvider实现,配置在文件:META-INF/services/org.apache.hadoop.mapreduce.protocol.ClientProtocolProvider中, 默认为:YarnC
阅读全文
摘要:overviewINIT_APPLICATION Handle收到 该 事件通知,Application 保存当前的用户的ACL信息,并通知logHandler,记录用户信息,App进入INITING状态: app.applicationACLs = initEvent.getApplicationACLs(); app.aclsManager.addApplication(app.getAppId(), app.applicationACLs); // Inform the logAggregator app.dispatcher.getEventHand...
阅读全文
摘要:overview上图中还有一个状态变换,从killing 到 Exited_with_failure,这个变换由事件:CONTAINER_EXITED_WITH_FAILURE 触发,执行:ExitedWithFailureTransition;INIT_CONTAINER And RESOURCE_LOCALIZED HandleContainer 收到该事件通知后,会首先偿试启动所有的和当前App 相关的 AuxServices, for (Map.Entry service : csd.entrySet()) { container.dispatcher.getEve...
阅读全文
摘要:OverviewContainer 是Hadoop中运行任务的地方,当Resourcemanager收到一任务请求后,会向nodemanager 请求一个Container 来运行ApplicationMaster, ApplicationMaster运行起来之后,会继续向Resourcemanager请求新的container来运行任务, 当container 完成任务之后,ApplicationMaster会释放相应的container, 当任务完成之后,ApplicationMaster会释放自己 运行的Container;StartContainerRequest handle图 2-
阅读全文
摘要:OverviewNodeManager 是hadoop cluster的server中,负责管理,执行任务相关的资源,主要通过ResouceManager和ApplicationsManager通信,通过ContainerManager与ApplicationMasterService 通信,InitiateServicesDeletionServiceNodeHealthCheckerServiceNodeResouceMonitorContainerManagerWebServerDispatcherNodeStatusUpdateEvent HandlerContainerManager
阅读全文