Mapreduce
少主无翼
热衷并发编程,个人博客:http://vickyqi.com/
展开
-
Hadoop JobTracker提交job源码浅析
上一篇文章说到jobClient提交job的过程,这篇文章是接着上一篇文章继续写的。上一篇说到jobSubmitClient.submitJob( jobId, submitJobDir.toString(), jobCopy.getCredentials())这里,这里就是jobTracker进行job的提交过程,还有一个JobSubmissionProtocol的实现是LocalJobRu原创 2013-11-20 00:29:19 · 2037 阅读 · 0 评论 -
Hadoop1.2.1源码解析系列:JobTracker(一)——JobTracker初始化
JobTracker是hadoop的mapreduce框架中最重要的一个类,这个类负责整个集群的作业控制和资源管理,所以深入了解它是很有必要的。本文从main方法着手对JobTracker的启动进行了解析,描述了JobTracker的初始化以及启动一些重要线程的功能,后面会继续对其他部分进行解析。原创 2013-11-24 23:52:06 · 3175 阅读 · 0 评论 -
算法系列:PageRank算法的MapReduce实现
首先简单介绍PageRank的算法公式:(图片来源:http://en.wikipedia.org/wiki/Page_rank)PR(A)即A的PageRank值;d为阻尼因子,一般设为0.85;L(B)即B网站所有的出链数量(即B网站内的所有链接的数量)。所以公式的意义是:A的PageRank值=(1-d)+d*(链接到A的所有网站的PR值/该网站的所有出链数量之和)。这里首次计算原创 2014-03-01 17:28:09 · 3506 阅读 · 12 评论 -
算法系列:矩阵相乘算法的MapReduce实现
使用MapReduce方式实现矩阵相乘算法,支持map输出切分。附有代码,注释完善。原创 2013-11-28 23:42:39 · 2214 阅读 · 0 评论 -
FairScheduler的任务调度机制——assignTasks(续)
上一篇文章浅析了FairScheduler的assignTasks()方法,介绍了FairScheduler任务调度的原理。略过了最后一步通过JobScheduler获取Task时调用JobInProgress的五个方法:obtainNewNodeLocalMapTask(),obtainNewNodeOrRackLocalMapTask(),obtainNewMapTask(),obtainNe原创 2013-12-15 20:49:47 · 2049 阅读 · 0 评论 -
FairScheduler的任务调度机制——assignTasks
本文简单介绍FairScheduler在进行任务调度时的方式,如果选择合适的Job,以及如何选择合适的Task。Hadoop有三种不同的任务调度策略(自带的FIFO,以及第三方的FairScheduler和CapacityScheduler),本文介绍的是FairScheduler的调度方式。原创 2013-12-11 00:33:02 · 4291 阅读 · 0 评论 -
Hadoop1.2.1源码解析系列:JT与TT之间的心跳通信机制——TT篇
JobTracker与TaskTracker之间的通信机制——心跳机制,是MapReduce中一个重要的知识点,了解该方法可以更好地了解JobTracker如何判断一个TaskTracker是否或者,以及如何获取每个TaskTracker的资源使用情况,以及如何为一个TaskTracker分配任务。原创 2013-12-03 23:37:04 · 3372 阅读 · 0 评论 -
Hadoop1.2.1源码解析系列:JT与TT之间的心跳通信机制——命令篇
简单介绍Hadoop心跳机制中JT对TT下达的五种命令:ReinitTrackerAction,KillTaskAction,KillJobAction,CommitTaskAction,LaunchTaskAction。TT在接收到每个命令时的处理方式都是不一样的,这里简单介绍了每个命令的含义,以及JT如何下达每个命令的,以及TT在接收到命令时的处理方式是什么。原创 2013-12-07 22:17:07 · 2025 阅读 · 0 评论 -
FairScheduler job初始化过程源码浅析
上一篇文章说到了jobTracker中的submitJob()方法,这个方法最终会调用listener.jobAdded(job),将Job注册到TaskScheduler中,由其进行调度。今天接着研究。hadoop中默认的TaskScheduler是JobQueueTaskScheduler,采用的是FIFO(先进先出)原则进行调度,还有FiarScheduler和CapacityTaskSch原创 2013-11-21 22:31:59 · 2127 阅读 · 0 评论 -
hadoop job初始化源码浅析
hadoop的job提交过程相对来说还是有点复杂的,所以在学习源码的时候会显得有些乱,时常看了后面忘了前面,所以在看了多遍之后决定用文章的方式记录下来,一边自己下次再看的时候能够清晰些,同时也为初次接触这方面源码的同学提供一些帮助吧。希望自己可以写的足够详细。(本文针对hadoop1.2.1)1.job.waitForCompletion:一般情况下我们提交一个job都是通过job.waitF原创 2013-11-18 23:59:45 · 3120 阅读 · 0 评论 -
Hadoop1.2.1源码解析系列:JT与TT之间的心跳通信机制——JT篇
上一篇浅析了Hadoop心跳机制的TT(TaskTracker)方面,这一篇浅析下JT(JobTracker)方面。我们知道心跳是TT通过RPC请求调用JT的heartbeat()方法的,TT在调用JT的heartbeat回收集自身的状态信息封装到TaskTrackerStatus对象中,传递给JT。下面看看JT如何处理来自TT的心跳。原创 2013-12-05 00:36:12 · 3830 阅读 · 4 评论