hadoop源码初读
文章平均质量分 51
巴氏旅人
这个作者很懒,什么都没留下…
展开
-
hadoop初读--Packet.getBuffer()
hadoop初读–Packet.getBuffer()下面主要结合小数据(写不满一个packet)或者lastPacket的场景记录下getBuffer方法实现,主要还是以注释和图解的方式.ByteBuffer getBuffer() { if (buffer != null) { return buffer; } //chunkData长度 in原创 2017-11-02 16:55:09 · 547 阅读 · 0 评论 -
StartAppAttemptTransition(详见6)
StartAppAttemptTransition单纯,上代码清单,主要逻辑:创建RMAppAttemptRMAppImpl会维护一个ApplicationAttemptId, RMAppAttempt的映射表触发RMAppStartAttemptEvent (RMAppAttemptEventType.START)事件private static final class Start...原创 2018-11-23 10:39:38 · 311 阅读 · 0 评论 -
AttemptStartedTransition(详见7)
AttemptStartedTransition主要逻辑:向ApplicationMasterService注册AppAttempt触发SchedulerEventType.APP_ATTEMPT_ADDED事件代码清单private static final class AttemptStartedTransition extends BaseTransition { @Over...原创 2018-11-23 10:47:39 · 222 阅读 · 0 评论 -
向ApplicationMasterService注册AppAttempt
向ApplicationMasterService注册AppAttempt代码清单:public void ApplicationMasterService.registerAppAttempt(ApplicationAttemptId attemptId) { AllocateResponse response = recordFactory.newRecordIns...原创 2018-11-23 10:57:42 · 450 阅读 · 0 评论 -
基于Yarn的应用程序提交流程图
原创 2018-11-23 18:06:10 · 318 阅读 · 0 评论 -
AM启动--ApplicationMasterLauncher(五)
ApplicationMasterLauncher/** * ApplicationMasterLauncher即是一个服务,也是一个事件处理器,它处理AMLauncherEventType类型的事件,该类型事件有两种,分别是请求启动一个ApplicationMaster的LAUNCH事件和请求清理一个ApplicationMaster的CLEANUP事件. *ApplicationMas...原创 2018-12-04 13:06:28 · 589 阅读 · 0 评论 -
AM启动--AMLauncher(六)
AMLauncherpublic class AMLauncher implements Runnable {...省略...@SuppressWarnings("unchecked") public void run() { switch (eventType) { case LAUNCH: try { LOG.info(&原创 2018-12-04 13:08:03 · 712 阅读 · 0 评论 -
ScheduleTransition(详见9)
ScheduleTransition@VisibleForTesting public static final class ScheduleTransition implements MultipleArcTransition<RMAppAttemptImpl, RMAppAttemptEvent, RMAppAttemptState&原创 2018-11-27 14:25:59 · 283 阅读 · 0 评论 -
CapacityScheduler --ApplicationMaster资源分配
CapacityScheduler --ApplicationMaster资源分配   资源分配是被动分配的方式,在数原创 2018-11-30 17:01:15 · 1263 阅读 · 0 评论 -
AM启动--ContainerStartedTransition(一)
ContainerStartedTransition单纯,代码清单:private static final class ContainerStartedTransition extends BaseTransition { @Override public void transition(RMContainerImpl container, RMContaine...原创 2018-11-30 17:25:56 · 256 阅读 · 0 评论 -
AM启动--AMContainerAllocatedTransition(二)
AMContainerAllocatedTransition主要逻辑步骤:     1.用sc原创 2018-12-03 13:32:52 · 429 阅读 · 0 评论 -
AM启动--StoreAppAttemptTransition(三)
StoreAppAttemptTransition     1.将AppAttempt状态存储到共享存储系统  &原创 2018-12-03 13:37:06 · 195 阅读 · 0 评论 -
AM启动--AttemptStoredTransition(四)
AttemptStoredTransition主要逻辑步骤:    1.将在AttemptStartedTransition中创建的ClientToken记录到ClientToAMTokenSecretManagerInRM的列表masterKeys中 &n原创 2018-12-03 13:52:17 · 181 阅读 · 0 评论 -
SchedulerApplication类图
原创 2018-11-22 18:20:19 · 136 阅读 · 0 评论 -
Capacity Scheduler--APP_ADDED事件的处理(详见5)
Capacity Scheduler简述Capacity Scheduler1.应用程序初始化  &原创 2018-11-22 18:00:00 · 396 阅读 · 1 评论 -
hadoop初读--写数据时的数据流管道双向机制
为了保证分布式数据的一致性和完整性,hadoop写数据流时使用了写数据和应答的双向机制. 这里着重说明的是反向应答其实是分为两部分: 1.写请求答应: 正常情况下,这个应答会从管道的最后一个数据节点开始,往客户端方向发送,管道上的每一个节点都会等待这个应答,收到应答后,才会开始接受数据,也就是说,客户端会等待这个应答,然后才开始发送数据。这个应答是同步的,即直到收到应答后原创 2017-11-13 11:16:35 · 820 阅读 · 0 评论 -
hadoop初读--setInputFormatClass
鉴于平时的hadoop实践问题或粗读hadoop源码而记录形成”hadoop初读”系列部分。每篇主要以问题-解答两部分组成:问题是实践中的异常或疑惑;解答部分为源码的粗读理解(以注释形式给出说明)。问题代码(主要实现多输入,报No input paths specified in job):import java.io.IOException;import java.net.URI;import原创 2017-06-01 17:57:07 · 3888 阅读 · 0 评论 -
rmAppManager.submitApplication详解(详见1)
rmAppManager.submitApplication详解submitApplication功能简要说明:创建RMAppImpl,然后将RMAppImpl放入ApplicationAclsManager触发RMAppEventType.START事件代码清单@SuppressWarnings("unchecked&原创 2018-11-20 15:48:24 · 1107 阅读 · 0 评论 -
RMAppNewlySavingTransition(详见2)
经过RMAppNewlySavingTransition后,RMApp的状态由NEW转为NEW_SAVING.根据提交上下文创建应用程序状态数据结构(主要是提交时间,启动事件,提交上下文,提交用户等),然后触发RMStateStoreEventType.STORE_APP事件,STORE_APP事件处理器会把应用程序数据存储到ZK上.原创 2018-11-20 15:49:07 · 218 阅读 · 0 评论 -
Capacity Scheduler--APP_ATTEMPT_ADDED事件的处理(详见8)
Capacity Scheduler简述Capacity Scheduler1.应用程序初始化  &原创 2018-11-23 17:50:54 · 703 阅读 · 0 评论 -
ApplictionId的生成
ApplictionId的生成ApplicationId主要包括两部分:clusterTimestamp和id.是在客户端提交应用程序前,随着rpc方法getNewJobID获取jobId时生成的.而JobID只是applicationId的简单包装.其中clusterTimestamp是ResourceManager的启动时间.而id是一个递增的整数类型.clusterTimestamp...原创 2018-11-22 15:51:21 · 657 阅读 · 0 评论 -
StoreAppTransition(详见3)
StoreAppTransition单纯,直接上代码清单private static class StoreAppTransition implements MultipleArcTransition<RMStateStore, RMStateStoreEvent, RMStateStoreState> { @Ove原创 2018-11-22 15:52:23 · 313 阅读 · 0 评论 -
AddApplicationToSchedulerTransition(详见4)
AddApplicationToSchedulerTransition单纯,直接上代码清单: private static final class AddApplicationToSchedulerTransition extends RMAppTransition { @Override public void transition(RMAppImpl app, ...原创 2018-11-22 17:59:38 · 316 阅读 · 1 评论 -
MRAppMaster启动Task步骤简述
MRAppMaster启动Container步骤简述步骤1:MRAppMaster启动后,会为应用程序创建JobImpl,然后根据Map Task和Reduce Task的数量创建对应的TaskImpl.  然后是启动job,创建与Map Task和Reduce Task的同数量的TaskAttemptImpl(TaskAttemptImpl的实现有MapTaskAttemptIm...原创 2018-12-08 16:53:45 · 700 阅读 · 0 评论