JobTracker
2015-10-12 19:08:32 21 举报
AI智能生成
JobTracker是Apache Hadoop中的一个关键组件,负责管理和调度分布式计算任务。它的主要功能包括接收用户提交的任务、将任务分解为子任务并分配给不同的DataNode节点进行并行处理、监控任务的执行状态以及收集和报告任务结果。通过JobTracker,Hadoop能够实现高效的数据处理和分析,支持大规模数据集的存储和处理。 在中国,许多企业和研究机构都在使用Hadoop和JobTracker进行大数据处理。例如,阿里巴巴、腾讯、百度等知名企业都在利用这些技术来优化他们的业务和服务。此外,中国政府也在积极推动大数据产业的发展,以满足国家经济发展和社会进步的需求。
作者其他创作
大纲/内容
new JobTracker()
监控中心 [JobTrackerMonitor]
channel管理者 [ChannelManager]
JobClient管理者 [JobClientManager]
TaskTracker管理者 [TaskTrackerManager]
节点变化监听器 [JobNodeChangeListener]
master节点变化监听器 [JobTrackerMasterChangeListener]
new AbstractJobNode()
实例化application
实例化DefaultConfig
nodeChangeListeners List
masterChangeListeners List
Set Config Params
ZK/Redis RegistryAddress
ListenPort (35002)
ClusterName
业务日志记录 mysql
任务队列用mysql
mysql 配置
monitor.url
Add Listeners
MasterChangeListenerImpl
Application配置
OldDataDeletePolicy
start()
initConfig
Application配置
EventCenter
jvm中的pub/sub简易实现 [InjvmEventCenter]
CommandBodyWrapper 用于设置CommandBody的基础信息
MasterElector
创建时间最小的便是master
addMasterChangeListener
RegistryStatMonitor [监控 注册中心的的可用状态]
实例化JobTrackerNode
nodeChangeListeners
SubscribedNodeManager 订阅的node管理
MasterElectionListener master选举的监听器
SelfChangeListener 监听自己节点变化(如,当前节点被禁用了)
preRemotingStart
NettyRemotingServer [Remoting服务端]
Application配置
RemotingServer
JobLogger
ExecutableJobQueue
ExecutingJobQueue
CronJobQueue
JobFeedbackQueue
NodeGroupStore
PreLoader
remotingStart
RemotingServer.start()
NettyConnectManageHandler [根据socket的连接状态 往eventQueue内塞入connect/close事件]
NettyServerHandler
REQUEST_COMMAND
根据request code获取RequestProcessor,并放入线程池来处理
RESPONSE_COMMAND
处理之前request后得到的应答,并回调callback
serverBootstrap.bind().sync()
NettyEventExecutor.start()
异步从LinkedBlockingQueue内的CONNECT/IDLE/Close Event, 从而触发ChannelEventListener
定时1秒扫描下异步调用超时情况
RemotingDispatcher
registerDefaultProcessor [在RemotingServer内配置默认的RequestProcessor以及对应的worker线程池]
afterRemotingStart
ChannelManager.start()
Monitor.start() [监控中心 JobTrackerMonitor]
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
jobTracker.stop()
0 条评论
下一页