- 浏览: 298909 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (165)
- hadoop (47)
- linux (11)
- nutch (7)
- hbase (7)
- solr (4)
- zookeeper (4)
- J2EE (1)
- jquery (3)
- java (17)
- mysql (14)
- perl (2)
- compass (4)
- suse (2)
- memcache (1)
- as (1)
- roller (1)
- web (7)
- MongoDB (8)
- struts2 (3)
- lucene (2)
- 算法 (4)
- 中文分词 (3)
- hive (17)
- noIT (1)
- 中间件 (2)
- maven (2)
- sd (0)
- php (2)
- asdf (0)
- kerberos 安装 (1)
- git (1)
- osgi (1)
- impala (1)
- book (1)
- python 安装 科学计算包 (1)
最新评论
-
dandongsoft:
你写的不好用啊
solr 同义词搜索 -
黎明lm:
meifangzi 写道楼主真厉害 都分析源码了 用了很久. ...
hadoop 源码分析(二) jobClient 通过RPC 代理提交作业到JobTracker -
meifangzi:
楼主真厉害 都分析源码了
hadoop 源码分析(二) jobClient 通过RPC 代理提交作业到JobTracker -
zhdkn:
顶一个,最近也在学习设计模式,发现一个问题,如果老是看别人的博 ...
Java观察者模式(Observer)详解及应用 -
lvwenwen:
木南飘香 写道
高并发网站的架构
启动 JobTracker
1. 进入main方法:
3.startTracker()方法中
2. JobTracker()构造方法中初始化信息
(1) static constants 变量
(2) 加载调度器 默认为FIFO 调度
/
taskScheduler 默认的执行类为JobQueueTaskScheduler ,当启动JobTracker 的时候 调用了 tracker.offerService();该方法执行了父类的 start()方法.该start()方法为 JobQueueTaskScheduler 的start方法:
在这个方法中调用了addJobInProgressListener()将lister 加入到了 jobTracker中,这个过程很绕,可通过下面的流程图梳理清楚
3. 启动jettyServer
JobTracker 提交job
1. jobClient()通过代理 调用JobTracker的submit方法提交job
2. submitJob方法中 调用了 addJob()将job添加到job队列中,等待执行
3. addJob方法:
1. 进入main方法:
//执行startTracker 方法 JobTracker tracker = startTracker(new JobConf()); //执行offerService()方法 tracker.offerService();
3.startTracker()方法中
// new JobTracker 方法 result = new JobTracker(conf, identifier); result.taskScheduler.setTaskTrackerManager(result);
2. JobTracker()构造方法中初始化信息
(1) static constants 变量
(2) 加载调度器 默认为FIFO 调度
/
/ Create the scheduler Class<? extends TaskScheduler> schedulerClass = conf.getClass("mapred.jobtracker.taskScheduler", JobQueueTaskScheduler.class, TaskScheduler.class); taskScheduler=(TaskScheduler)ReflectionUtils.newInstance(schedulerClass, conf);
taskScheduler 默认的执行类为JobQueueTaskScheduler ,当启动JobTracker 的时候 调用了 tracker.offerService();该方法执行了父类的 start()方法.该start()方法为 JobQueueTaskScheduler 的start方法:
@Override public synchronized void start() throws IOException { super.start(); taskTrackerManager.addJobInProgressListener(jobQueueJobInProgressListener); eagerTaskInitializationListener.setTaskTrackerManager(taskTrackerManager); eagerTaskInitializationListener.start(); taskTrackerManager.addJobInProgressListener( eagerTaskInitializationListener); }
在这个方法中调用了addJobInProgressListener()将lister 加入到了 jobTracker中,这个过程很绕,可通过下面的流程图梳理清楚
3. 启动jettyServer
infoServer.addServlet("reducegraph", "/taskgraph", TaskGraphServlet.class); infoServer.start();
JobTracker 提交job
1. jobClient()通过代理 调用JobTracker的submit方法提交job
2. submitJob方法中 调用了 addJob()将job添加到job队列中,等待执行
3. addJob方法:
private synchronized JobStatus addJob(JobID jobId, JobInProgress job) throws IOException { totalSubmissions++; synchronized (jobs) { synchronized (taskScheduler) { jobs.put(job.getProfile().getJobID(), job); // jobInProgressListeners list 在start jobTracker 的时候,在JobQueueTaskScheduler 的start方法中初始化加入了两个listener : eagerTaskInitializationListener 和jobQueueJobInProgressListener for (JobInProgressListener listener : jobInProgressListeners) { listener.jobAdded(job); } } } myInstrumentation.submitJob(job.getJobConf(), jobId); job.getQueueMetrics().submitJob(job.getJobConf(), jobId); LOG.info("Job " + jobId + " added successfully for user '" + job.getJobConf().getUser() + "' to queue '" + job.getJobConf().getQueueName() + "'"); AuditLogger.logSuccess(job.getUser(), Operation.SUBMIT_JOB.name(), jobId.toString()); return job.getStatus(); }
发表评论
-
博客地址变更
2013-08-16 10:29 1157all the guys of visiting the bl ... -
hadoop 源码分析(六)hadoop taskTracker 生成map 和reduce任务流程
2013-04-09 17:36 2704taskTracker 生成map reduce ... -
hadoop 源码分析(六)hadoop taskTracker 生成map 和reduce任务流程
2013-04-09 17:33 0taskTracker 生成map reduce ... -
hadoop 源码分析(五)hadoop 任务调度TaskScheduler
2013-04-01 11:07 3901hadoop mapreduce 之所有能够实现job的运行 ... -
hadoop 源码分析(三) hadoop RPC 机制
2013-03-28 15:13 2373Hadoop 通信机制采用自己编写的RPC. 相比于 ... -
hadoop 源码分析(二) jobClient 通过RPC 代理提交作业到JobTracker
2013-03-27 12:57 36891.JobClient 客户端类 通过 ... -
hadoop 源码分析(一) jobClient 提交到JobTracker
2013-03-26 13:41 3571Hadoop 用了2年多了.从最初一起创业的 ... -
RHadoop 安装教程
2013-02-01 17:18 1584RHadoop 环境安装 硬件: centos6 ... -
pig
2012-11-16 19:28 1173转自:http://www.hadoopor.c ... -
hadoop与hive的映射
2012-11-15 10:21 2339hadoop与hive的映射 ... -
hadoop distcp
2012-07-31 10:00 2783hadoop distcp 使用:distcp ... -
MapReduce中Mapper类和Reducer类4函数解析
2012-07-20 18:05 2082MapReduce中Mapper类和Reducer类4函数解析 ... -
hadoop metrics 各参数解释
2012-07-17 18:59 1476hadoop metrics 各参数解释 研究使用hadoo ... -
Hbase几种数据入库(load)方式比较
2012-07-17 14:52 13481. 预先生成HFile入库 这个地址有详细的说明http:/ ... -
Hadoop客户端环境配置
2012-05-11 14:59 1733Hadoop客户端环境配置 1. 安装客户端(通过端用户可以 ... -
hadoop 通过distcp进行并行复制
2012-05-02 15:25 2403通过distcp进行并行复制 前面的HDFS访问模型都集中于 ... -
linux crontab 执行hadoop脚本 关于hadoop环境变量引入
2012-04-10 12:11 0crontab问题 crontab的特点:PATH不全和无终 ... -
hadoop fs 命令封装
2012-04-09 09:39 0hadoop fs 命令封装 #!/usr/bin/env ... -
map-reduce编程核心问题
2012-02-22 13:38 12351-How do we break up a large p ... -
Hadoop Archives
2012-02-17 14:25 0Hadoop Archives 什么是Hadoop arch ...
相关推荐
Hadoop源码分析(完整版),详细分析了Hadoop源码程序,为学习Hadoop的人提供很好的入门指导
学习Hadoop源码过程中做的源码分析,共享一下,PPT中有我的邮箱,可以互相探讨。Hadoop源码分析(client端提交job到rm端)
Hadoop源码分析视频下载
caibinbupt的Hadoop源码分析完整版,包括 HDFS 和 MapReduce。 HDFS: 41章 MapReduce: 14章
Hadoop源码分析完整版..
Hadoop源码分析,Map-Reduce作业提交运行入手分析这个过程中涉及到的Hadoop源码架构,此外本文基于的Hadoop版本是2.6.4
hadoop 源码分析 文档
Hadoop源代码分析(完整版).pdf
大数据处理系统 hadoop源码分析 基于hadoop2.6
hadoop源码分析hadoop源码分析
Hadoop源码分析.rar 有助于hadoop学习者进一步学习!! 非常好的资源!!
自己写的PPT,详解Hadoop源码及其相关流程
一个比较详细的hadoop源码分析文档,内容很详实,包括hadoop、hdfs、hive等等等
Hadoop的源代码分析总共55章,包括HDFS: 41章、MapReduce: 14章。
NULL 博文链接:https://zqhxuyuan.iteye.com/blog/1879292
hadoop源码分析-mapreduce部分.doc
该压缩包包含Hadoop实战、Hadoop权威指南(第二版)、Hadoop源码分析(完整版)的内容,有助于初、中、高级工程师的理解和提升
hadoop源码,官方,放心下载,完整版,阅读hadoop源代码的目的不一定非是工作的需要,你可以把他看成一种修养,通过阅读hadoop源代码,加深自己对分布式系统的理解,培养自己踏实做事的心态。