TaskTracker的启动过程
2015-10-14 15:59:15 5 举报
AI智能生成
TaskTracker是Hadoop中的一个组件,负责执行和监控任务。它的启动过程如下: 1. TaskTracker首先会读取配置文件,获取必要的参数信息。 2. 然后它会启动各个模块,包括数据块管理器、任务调度器等。 3. 接着,TaskTracker会向NameNode注册自己,并获取到需要处理的数据块的位置信息。 4. 最后,TaskTracker会开始监听任务调度器的请求,并根据任务要求执行相应的操作。 总之,TaskTracker的启动过程主要包括读取配置文件、启动各个模块、注册到NameNode以及监听任务调度器请求这几个步骤。
作者其他创作
大纲/内容
new TaskTracker()
new AbstractJobNode()
实例化application
实例化DefaultConfig
nodeChangeListeners List
masterChangeListeners List
监控中心 [TaskTrackerMonitor]
Set Config Params
ZK/Redis RegistryAddress
NodeGroup / ClusterName
WorkThreads
monitor.url
Add Listeners
masterChangeListeners
MasterChangeListenerImpl [ master节点变化监听器]
Application配置
JobRunnerClass
start()
AbstractJobNode.initConfig
Application配置
EventCenter
jvm中的pub/sub简易实现 [InjvmEventCenter]
CommandBodyWrapper 用于设置CommandBody的基础信息
MasterElector
创建时间最小的便是master
addMasterChangeListener
RegistryStatMonitor [监控 注册中心的的可用状态]
实例化JobTrackerNode
nodeChangeListeners
SubscribedNodeManager 订阅的node管理
MasterElectionListener master选举的监听器
SelfChangeListener 监听自己节点变化(如,当前节点被禁用了)
preRemotingStart
AbstractClientNode.preRemotingStart
实例化NettyRemotingClient
HeartBeatMonitor [用来发送心跳包]
向事件中心注册事件 [_NODE_ADD_], 关注JobTracker节点单变化
发心跳,并给事件中心发[JOB_TRACKER_AVAILABLE]
stopFastPing
startPing
向事件中心注册事件[JobTracker不可用]
有[JobTracker不可用]事件,startFastPing
定时1s PullJob Request
定时30s 一次心跳
Application配置
RemotingClient
RunnerPool
向事件中心注册事件, 改变工作线程大小
JobPullMachine [向JobTracker取任务]
向事件中心注册事件, JOB_TRACKER的可用状态
Job可用状态
非可用状态
StopWorkingMonitor [当TaskTracker和JobTracker断开超过了一段时间,TaskTracker立即停止当前的所有任务]
remotingStart
RemotingClient.start()
NettyConnectManageHandler
NettyClientHandler
processMessageReceived
HeartBeatMonitor.start
startFastPing
定时1s HeartBeat --> stopFastPing & startPing
registerDefaultProcessor [在RemotingClient内配置默认的RequestProcessor以及对应的worker线程池]
afterRemotingStart
按配置StopWorkingMonitor.start()
Monitor.start() [监控中心 TaskTrackerMonitor]
initRegistry
初始化Registry
实例化ZookeeperRegistry
FailbackRegistry初始化
定时5s retry()
failedRegistered
doRegister
failedUnRegistered
doUnRegister
failedSubscribed
doSubscribe
failedUnsubscribed
doUnsubscribe
failedNotified
NotifyListener.notify
ZookeeperClient
ZkClientZookeeperClient链接ZK
RegistryStatMonitor.setAvailable(true)
add StateListener
ZK连接的状态变化,从而触发RegistryStatMonitor的isAvailable
ZookeeperRegistry.subscribe(node, NotifyListener) listTypes路径下child节点有发生变化时的notify
ZookeeperRegistry.register(node)
FailbackRegistry.register(node)
维护registered Set
doRegister
AbstractZookeeperClient.create(path) [ZK内新建path]
addShutdownHook
taskTracker.stop()
0 条评论
下一页