JobTracker
2015-10-12 19:08:32 39 举报
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 <masterChangeListeners>
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<Node>
doRegister
AbstractZookeeperClient.create(path) [ZK内新建path]
addShutdownHook
jobTracker.stop()
0 条评论
下一页