MapReduce
MapReduce相关
看朱成碧_
The more you know, the more you don't know.
展开
-
MapReduce源码解读之ReduceTask
写在前面MapTask在执行context.write()之后,将结果溢写到磁盘,然后触发Reduce Shuffle,具体的shuffle过程可以参考MapReduce shuffle过程详解,这篇文章讲的通俗易懂,这样Map端的任务就算基本完成了。接下来我们看Reducer端做了哪些工作。跟源码时,可以从Reducer类的run方法开始分析。1.入口:Reducer类的run()方法/*...原创 2020-04-21 17:25:14 · 295 阅读 · 0 评论 -
MapReduce源码解读之MapTask-output
写在前面我们知道MapTask执行完之后,会调用context.write()方法将map的输出结果写入到磁盘中,然后Reducer从磁盘中拉去结果,那么在源码层面,这一过程到底是怎么执行的呢?前面我们分析了MapTas类的input部分代码,现在我们来分析MapTask类的run()方法部分代码,看看shuffle过程是怎么执行的。注:本人使用的版本为Hadoop2.6.5,所以源码分析也是...原创 2020-04-21 11:26:27 · 263 阅读 · 0 评论 -
MapReduce源码解读之MapTask-input
写在前面前面分析了MapReduce客户端作业提交、计算MapTask数量,现在开始分析作业提交之后,MapTask是如何运行的。ResourceManager收到客户端提交的作业后,会启动MrAppMaster,MrAppmaster运行程序时向ResouceManager 请求maptask/reduceTask。这个请求最终会在NodeManager上产生一个Yarn child进程,Ya...原创 2020-04-20 16:41:06 · 294 阅读 · 0 评论 -
MapReduce源码解读之客户端作业提交、计算Map数量
1. 入口:WCDriver.java/** * 配置mr框架运行的一些参数,比如hdfs数据文件的目录,reduce文件上传到hdfs的目录 * 相当于yarn集群的客户端,需要在此封装mr框架的一部分参数,指定jar包,最后提交给yarn集群 * @author Lee * */public class wordcountdriver {public static void m...原创 2020-04-19 23:13:46 · 239 阅读 · 0 评论 -
MapReduce任务调度和资源管理
MapReduce任务调度和资源管理MapReduce任务调度和资源管理主要的目的是解决如何去选择一个合适的节点去执行 Task。一个集群里有很多台机器,每台机器都拥有各自的资源,如剩余内存量,核数,网络带宽,磁盘容量等。资源管理者必须要知道这些节点的可用资源才能对任务进行合理分配调度,那么MapReduce是如何进行任务调度的呢?这就涉及到MapReduce的任务调度模型了。在MapRed...原创 2020-04-18 23:26:47 · 3374 阅读 · 5 评论 -
粗粒度解读MapReduce
什么是MapReduce?单机计算的局限性以及分布式计算需要解决哪些问题在介绍MapReduce定义之前我们首先要了解到单机计算的局限性和分布式计算需要解决哪些问题,这有助于我们理解MapReduce是一个多么伟大的创新。单机计算的局限性:磁盘受限,一台计算机的存储容量达到50T就以及算是大容量了,就目前企业中产生的数据量来看,单台计算机的磁盘容量远远无法满足企业的存储需求;内存受限,单台...原创 2020-04-18 12:25:14 · 629 阅读 · 0 评论