江山疯宇晴

2013年7月23日

HDFS---Namenode

摘要: OverviewNamenode 是HDFS中负责namespace管理的节点,Namenode 保存了当前集群中所存储的的所有的文件的元数据信息,namenode同时与集群中其它的节点通信,以保持元数据与系统中的文件的一致性,同时也和client通信,以响应client对文件的需要。NameNode中主要有两个大类来处理这些需求,FSNamesystem ---- 是一个门面类,主要通过该类调用系统中相应实现来维护namespace信息;NameNodeRpcServer: 是一个ipc实现类,实现了各种protocols, 来与系统中的各个节点通信:NamenodeProtocol: 用来 阅读全文

posted @ 2013-07-23 13:27 江山疯宇晴 阅读(407) 评论(0) 推荐(0) 编辑

2013年5月22日

HadoopSourceAnalyse --- Mapreduce ApplicationMaster TaskAttempt FSM

摘要: 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 阅读全文

posted @ 2013-05-22 13:43 江山疯宇晴 阅读(211) 评论(0) 推荐(0) 编辑

2013年5月20日

HadoopSourceAnalyse --- Mapreduce ApplicationMaster Task FSM

摘要: 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... 阅读全文

posted @ 2013-05-20 12:59 江山疯宇晴 阅读(229) 评论(0) 推荐(0) 编辑

2013年5月17日

HadoopSourceAnalyse --- Mapreduce ApplicationMaster Job FSM

摘要: 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... 阅读全文

posted @ 2013-05-17 16:34 江山疯宇晴 阅读(364) 评论(1) 推荐(0) 编辑

2013年5月14日

HadoopSourceAnalyse --- Mapreduce ApplicationMaster Job start

摘要: 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... 阅读全文

posted @ 2013-05-14 13:46 江山疯宇晴 阅读(236) 评论(0) 推荐(0) 编辑

2013年5月13日

HadoopSourceAnalyse --- Mapreduce ApplicationMaster init&startup

摘要: OverviewApplicationMaster 是运MapReduce 任务的中间核心组组件,主要负责向ResourceManager请求Container来运行任务,并监视任务的执行:图 1-1上图展示了,ApplicationMaster 在初始化的时候,做了哪 些事情, 当一个新的任务提交的时候,ApplicationMaster会依次启动下列的Service:Dispatcher:AsyncDispatcherclientService:MRClientServiceCommitterEventHandler Service:CommitterEventHandlerTaskAtt 阅读全文

posted @ 2013-05-13 11:25 江山疯宇晴 阅读(500) 评论(0) 推荐(0) 编辑

2013年5月9日

HadoopSourceAnalyse --- Mapreduce Job init&submit

摘要: OverviewHadoop 的任务是通过Job对像提交到系统处理的,所以Job对像带有一切运行任务所需要的信息。下图展示了,Job运行过程所经历的所有阶段:图 1-1在配置 完Job对像之后,Job会首初始化一个Cluster对像,用来保存Cluster相关的信息,包括用来与ResourceManager通信的客户端:图 1-2Cluster对像初始化的时候,会先去寻找 ClientProvider实现,配置在文件:META-INF/services/org.apache.hadoop.mapreduce.protocol.ClientProtocolProvider中, 默认为:YarnC 阅读全文

posted @ 2013-05-09 16:19 江山疯宇晴 阅读(437) 评论(0) 推荐(0) 编辑

2013年5月8日

HadoopSourceAnalyse --- Nodemanager Application FSM

摘要: 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... 阅读全文

posted @ 2013-05-08 13:45 江山疯宇晴 阅读(218) 评论(0) 推荐(0) 编辑

2013年5月7日

HadoopSourceAnalyse --- Nodemanager Container FSM

摘要: 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... 阅读全文

posted @ 2013-05-07 17:57 江山疯宇晴 阅读(319) 评论(0) 推荐(0) 编辑

HadoopSourceAnalyse --- Nodemanager Container request handler

摘要: OverviewContainer 是Hadoop中运行任务的地方,当Resourcemanager收到一任务请求后,会向nodemanager 请求一个Container 来运行ApplicationMaster, ApplicationMaster运行起来之后,会继续向Resourcemanager请求新的container来运行任务, 当container 完成任务之后,ApplicationMaster会释放相应的container, 当任务完成之后,ApplicationMaster会释放自己 运行的Container;StartContainerRequest handle图 2- 阅读全文

posted @ 2013-05-07 16:28 江山疯宇晴 阅读(151) 评论(0) 推荐(0) 编辑

导航