MapReduce
Yiie
这个作者很懒,什么都没留下…
展开
-
MapReduce原理(3): MapReduce的分片机制 getSplits()方法 源码解析
1、getSplits()方法在 FileInputFormat.addInputPath(job, path)中 /** * Generate the list of files and make them into FileSplits. * @param job the job context * @throws IOException */ public ...原创 2019-09-05 19:25:07 · 2095 阅读 · 0 评论 -
MapReduce原理(1):Job从创建到提交到集群获取所需资源进行运行的过程 源码解析 + 图解
1、Job的创建Job类中重载了3个getInstance(),这个方法是唯一暴露给外部的方法Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://192.168.116.117:8020/");Job job = Job.getInstance(conf,"wordCount");Job中g...原创 2019-09-05 09:47:01 · 1968 阅读 · 2 评论 -
MapReduce原理(2): 普通文件、HDFS中的块block、切片splits区别
为了避免对文件、块、片理解有误区,解释一下三者关系1、一个文件从本地被上传到HDFS时,会进行分块,块大小默认是64M,同时会产生副本数保存在其他datanode上,默认副本数是3个,课通过配置文件修改2、要进行分片时,先把块从分布式文件系统中取出,调用getSplits(),通过分片算法对块进行分片,片的单位大小就是块的大小,64M3、block是在物理内存上进行存储的,是真实存储在hd...原创 2019-09-05 19:31:31 · 4252 阅读 · 4 评论 -
MapReduce原理(4):图解 MapReduce中的 map()、shuffle()、reduce()的过程
当属于该reducer的map输出全部拷贝完成,则会在reducer上生成多个文件(如果拖取的所有map数据总量都没有内存缓冲区,则数据就只存在于内存中),这时开始执行合并操作,即磁盘到磁盘merge,Map的输出数据已经是有序的,Merge进行一次合并排序,所谓Reduce端的sort过程就是这个合并的过程。一般Reduce是一边copy一边sort,即copy和sort两个阶段是重...原创 2019-09-06 08:52:46 · 1956 阅读 · 1 评论