`
cloudeagle_bupt
  • 浏览: 537176 次
文章分类
社区版块
存档分类
最新评论

Hadoop JobTracker 分析

 
阅读更多
jobtracker的主要逻辑在offerService方法里面。

主要做了一下几件事:

1 更新jobTracker重启的次数。它简单的创建一个jobtracker信息文件
在jobtracker的系统目录并写道其重启的计数。第一开始,jobtracker写道“0”。在随后的
重启jobtracker取代了与当前计数,计数(老数+ 1)。这个目的是获得重新启动的计数,
以避免尝试id的冲突。如果这个操作失败了。则会等待一定的时间重试,到成功才结束该操作。

2 任务调度器开始工作。该过程需要单独写篇博文来分析其中的原理。待续

3 开始恢复job,通过RecoveryManager的recover()方法实现。该过程需要单独写篇博文来分析其中的原理。

4 更新taskTracker主机列表,把那些不在主机列表中的节点remove掉。主要配置文件为mapred.hosts和
mapred.hosts.exclude

5 开启ExpireTrackers线程,作用是对失去链接TaskTracker线程监控,即长时间未报告的TaskTracker将不会再分配新的Task。因为可能cashed。

6 开启RetireJobs线程,作用是清除那些已经完成很长时间还存在队列里的jobs

7开启expireLaunchingTaskThread线程,作用是停止那些未在超时时间内报告进度的Tasks。

8 开启completedJobsStoreThread线程,作用是把JobInProgress中的job信息存储到DFS中;
提供一些读取状态 信息的方法;是一个守护进程,用于删除DFS中的保存时间超过规定时间的job status
删除。<wbr style="line-height:32px"></wbr>
9 启动interTrackerServer,是一个链接桥梁。端口配置在Configuration中的“mapred.job.tracker”参数,缺省是绑定8012端口。它有两个用途,一是用于接收和处理 TaskTracker的heartbeat等请求,即必须实现InterTrackerProtocol接口及协议。二是用于接收和处理 JobClient的请求,如submitJob,killJob等,即必须实现JobSubmissionProtocol接口及协议。

10 标记状态为running。

上面这10点除了2其他都可以说是JobTracker的周边工作,或者是辅助工作为调度Job。除了上面这10点外,JobTracker的核心工作是接受taskTracker的心跳请求,并为其分配task。以其接收和处理JobClient的请求,如submitJob,killJob等。这是核心工作,需要独立的博文来分析。敬请期待。

下面把这段源码贴下, 可以对着看:

/** * Run forever */ public void offerService() throws InterruptedException, IOException { // Prepare for recovery. This is done irrespective of the status of restart // flag. while (true) { try { recoveryManager.updateRestartCount(); break; } catch (IOException ioe) { LOG.warn("Failed to initialize recovery manager. ", ioe); // wait for some time Thread.sleep(FS_ACCESS_RETRY_PERIOD); LOG.warn("Retrying..."); } } taskScheduler.start(); // Start the recovery after starting the scheduler try { recoveryManager.recover(); } catch (Throwable t) { LOG.warn("Recovery manager crashed! Ignoring.", t); } // refresh the node list as the recovery manager might have added // disallowed trackers refreshHosts(); this.expireTrackersThread = new Thread(this.expireTrackers, "expireTrackers"); this.expireTrackersThread.start(); this.retireJobsThread = new Thread(this.retireJobs, "retireJobs"); this.retireJobsThread.start(); expireLaunchingTaskThread.start(); if (completedJobStatusStore.isActive()) { completedJobsStoreThread = new Thread(completedJobStatusStore, "completedjobsStore-housekeeper"); completedJobsStoreThread.start(); } // start the inter-tracker server once the jt is ready this.interTrackerServer.start(); synchronized (this) { state = State.RUNNING; } LOG.info("Starting RUNNING"); this.interTrackerServer.join(); LOG.info("Stopped interTrackerServer"); }


分享到:
评论

相关推荐

    JobTracker:Hadoop JobTracker OS X 菜单栏应用程序

    Hadoop JobTracker 的 Mac 菜单栏应用程序界面。 它使您可以轻松访问 JobTracker 中的作业,并提供有关开始、完成和失败作业的 Growl/通知中心通知。 请参阅了解更多信息并下载二进制文件。 如果您有任何问题或...

    Hadoop.chm HadoopAPI Hadoop英文版最新API

    比如:jobtracker是用于跟踪MapReduce作业的。从零开始构建一个网络搜索引擎是一个很大的计划,并且往往会遇到很多的问题。不仅是因为编写一个爬虫并索引页面的软件比较复杂,而且,一个这样的项目需要一个专门的...

    hadoop0.23.9离线api

    org.apache.hadoop.mapreduce.server.jobtracker org.apache.hadoop.mapreduce.server.tasktracker org.apache.hadoop.mapreduce.tools org.apache.hadoop.mapreduce.v2 org.apache.hadoop.mapreduce.v2.app....

    Hadoop权威指南 第二版(中文版)

     本书是Hadoop权威参考,程序员可从中探索如何分析海量数据集,管理员可以从中了解如何安装与运行Hadoop集群。 目录 第1章 初识Hadoop  数据!数据!  数据存储与分析  与其他系统相比  关系型数据库管理系统...

    Hadoop实战中文版

    1.7 Hadoop历史 1.8 小结 1.9 资源 第2章 初识Hadoop 2.1 Hadoop 的构造模块 2.1.1 NameNode 2.1.2 DataNode 2.1.3 Secondary NameNode 2.1.4 JobTracker 2.1.5 TaskTracker 2.2 为Hadoop 集群安装SSH ...

    Hadoop集群安装

    bin/start-mapred.sh腳本會參照jobtracker上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動 tasktracker。 • 在"主機一"執行下面的命令啟動Map/Reduce: • /opt/hadoop$ /opt/hadoop/bin/start-...

    MapReduceV1:Job提交流程之JobTracker端分析

    我们基于Hadoop1.2.1源码分析MapReduceV1的处理流程。MapReduceV1实现中,主要存在3个主要的分布式进程(角色):JobClient、JobTracker和TaskTracker,我们主要是以这三个角色的实际处理活动为主线,并结合源码,...

    Hadoop权威指南(中文版)2015上传.rar

    使用Hadoop分析数据 map阶段和reduce阶段 横向扩展 合并函数 运行一个分布式的MapReduce作业 Hadoop的Streaming Ruby版本 Python版本 Hadoop Pipes 编译运行 第3章 Hadoop分布式文件系统 HDFS的设计 HDFS的概念 数据...

    hadoop技术内幕

    《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和...

    hadoop启动时间写入文件

    hadoop:1.0.4 修改JobTracker源码,把JobTracker启动时间写入文件/...只需替换hadoop-core-1.0.4.jar文件,然后重启系统集群即可,启动后就可以在hdfs文件系统看到/private/jobtracker/starttime中有的启动时间。

    【大数据】Hadoop常用启动命令.pdf

    mapred.sh 停⽌Hadoop MapReduce守护进程JobTracker和TaskTracker hadoop-daemons.sh start jobtracker 单独启动JobTracker守护进程 hadoop-daemons.sh stop jobtracker 单独停⽌JobTracker守护进程 hadoop-daemons....

    hadoop技术内幕 深入解析mapreduce架构设计与实现原理

    《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和...

    Hadoop源码剖析

    Hadoop源码剖析,Mapper、 Reducer、JobTracker等类分析。

    hadoop安装

    1.a1 192.168.9.1 (master) a2 192.168.9.2 (slave1) a3 192.168.9.3 (slave2) 修改/etc/hosts 2.3台机器 创建hadoop 用户 ...[hadoop@a1 hadoop-0.20.2-cdh3u5]$ bin/hadoop dfsadmin -report

    Hadoop技术内幕 深入理解MapReduce架构设计与实现原理 扫描版 带简单书签

    《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和...

    hadoop技术内幕 深入解析mapreduce架构设计与实现原理.(董西成).全本

    《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和...

    hadoop技术内幕 深入解析mapreduce架构设计与实现原理.(董西成).全本1

    《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入分析了RPC框架、客户端、JobTracker、TaskTracker和...

    大数据与云计算技术 Hadoop概论和快速入门 共40页.ppt

    Hadoop, Apache开源的分布式框架。源自Google GFS,BigTable,MapReduce...JobTracker,hadoop的Map/Reduce调度器,负责与TackTracker通信分配计算任务并跟踪任务进度。 TaskTracker,启动和管理Map和Reduce子任务的节点。

    Hadoop实战手册

    hadoop-env.sh 环境变量13#Hadoop Common组件 配置 core-site.xml13#HDFS NameNode,DataNode组建配置 hdfs-site.xml14#配置MapReduce - JobTracker TaskTracker 启动配置15#Hadoop单机系统,启动执行和异常检查17#...

    Hadoop实战中文版.PDF

    24112.4.3 ES2分析 24212.4.4 小结 24912.4.5 参考文献 250附录A HDFS文件命令 251构建hadoop运算坚实的平台编辑百度构建了超大规模的服务器集群来运行Hadoop,其中日志处理与分析占到了全部hadoop集群的80%...

Global site tag (gtag.js) - Google Analytics