MapReduce整个流程_Wdxxxxxxx的博客-程序员宅基地_mapreduce流程

技术标签: mapreduce  hadoop  

一、map端

1、由InputFormat的默认实现类TextInputFormat调用createRecoderReader()方法,返回一个RecoderReader对象调用read()方法来读取,返回kv键值对。
2、将返回的kv键值对输入到map()函数,作为传入参数,经过用户自定义的逻辑后,由context.write()方法输出。
3、此时,输出会被outputCollector.collect()方法收集,并且写入到环形缓冲区。
4、环形缓冲区底层是一个字节数组,在输出数据不断往后写入到同时,前面的数据会不断向外溢写,环形缓冲区的默认大小为100M,可以通过mapreduce.task.io.sort.mb设置,另外,环形缓冲区的溢写阈值为0.8,也可以通过mapreduce.map.sort.spill.percent进行设置。同时,如果输出数据写入时,环形缓冲区的内存不够了,写入会被阻塞,直到溢写完成。
5、溢写文件的过程中会对数据进行分区(默认是hash分区(key.hashCode()&Integer.Max_VALUE)%numReduceTasks),然后对key进行排序,如果有用户自定义的combiner函数则会执行。就这样会溢写出多个小文件。
6、多个溢写文件合并成分区且区内有序的大文件,如果溢写文件大于3则会再次进行combiner()函数,让结果更加紧凑,减少磁盘IO和之后的网络IO。
7、也可以对map的输出进行数据的压缩,节约磁盘,网络传输更快。

二、reduce端

1、reduce会通过http从各个maptask任务所在的节点拉取该分区的数据。
2、通过groupingcomparetor()函数,将所有key相同的键值对都放在一组,形成(k,iterator),作为reduce()方法的输入参数,经过用户自定义的逻辑后,通过context.write()方法输出。
3、会通过OutputFormat调用RecordWriter对象的write()方法将输出写入数据库。

三、reducer如何知道从哪个节点获得map输出?

map任务完成后,会通过心跳机制向application master汇报,因此application master 知道对应的map输出和节点的位置关系。同时,reduece会使用一个线程定时访问application master获取map输出和节点的位置关系,直到获得所有的位置。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wudanixn/article/details/123652575

智能推荐

魅族鸿蒙os测试,EMUI11系统完成推送 鸿蒙OS将在年底进行测试_月落的蜂蜜的博客-程序员宅基地

众所周知,华为的旗舰机有P系列和Mate系列,其中Mate系列比较商务,适合白领、办公人群使用,而P系列主打拍照,适合年轻人使用。作为旗舰机,系统更新肯定不能落下,两者都是每个月更新一次小版本,一年更新一次大版本,系统更新也是为了优化拍照水平、丰富功能、修复BUG以及添加安卓补丁。一般来说,旗舰机有三个大安卓版本的更新,之后就会被放弃,都是小修小补。今年的大版本为EMUI11系统,根据不同机型不同...

推荐书单1.0:测试工程师成长之路_weixin_34162695的博客-程序员宅基地

晚上到家后看完了《文明之光》最后一个章节的内容,然后对着书架发呆,想了半天,突然冒出一个念头:何不整理一个推荐书单?想到就做!这里就将自己看过的一些觉得不错的书整理个目录,方便自己及其他人查阅,做个参考。。。。17年最后的几天,我整理好了自己18年的阅读计划和购书书单,也希望看到这篇博客的各位有自己的学习计划。。。 关于软件测试的思维和方法论《Google软件测试之道》《敏...

取消CheckBox的点击阴影效果_夏夜班星的博客-程序员宅基地_checkbox去掉点击效果

android:background="@android:color/transparent"CheckBox属性添加android:background为透明后,可取消点击的阴影效果。

python含义是什么_python _=是什么意思_weixin_39773158的博客-程序员宅基地

广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!在while loops里我们常常会碰到的 += 意思很简单,大致上大家都说了再加以解释吧! >>> num = 1 当 num 小过5 或等于 5 它会一直不断的输出,直到 num 大过才会停止输出im mtcy 在这个时候我们注意到在下方有一行代码. num +...

社交化分享SDK for Unity_weixin_33769207的博客-程序员宅基地

前言社交化分享,即分享到社交网络。本文主要记录的是在Unity集成社交化分享SDK,现主流的分享SDK有如下:1、友盟社交化分享 for unity2、ShareSDK分享 for unity分享SDK for Unity下面看一下使用SDK进行分享的效果友盟 SDK分享Share SDK分享如何分享大图片QQ分享-大图片比如,...

恋爱话术表白头像漫画制作微信小程序_banzhuan678的博客-程序员宅基地

介绍:恋爱话术表白头像漫画制作微信小程序,恋爱信封表白制作生成(内涵N种文案)、头像转漫画制作、土味情话、舔狗语录、渣女语录、暖男情话等等多种功能使用方法:使用微信开发者工具,导入恋爱小程序源码,然后设置好合法域名提交审核即可,合法域名自己查找添加效果展示特点:无需服务器和域名。网盘下载地址:http://kekewangLuo.net/vHTBkfBA9aH0图片:...

随便推点

Ajax和Ajax Jquery_潮有信的博客-程序员宅基地

Ajax定义:异步的javascript和XML,是一种综合技术,运用XMLHttpRequest(xhr)和服务器交换数据,通过javascript局部渲染页面,从而实现页面异步的局部更新同步与异步: 简单来说同步代码按顺序执行,会阻塞代码执行(alert)。异步不会阻塞代码。一、XMLHttpRequest(XHR)1、创建xml 对象var xhr = new XMLHTTPRequest()2、 打开HTTP连接xhr.open(method,url,布尔值)////打开的方法

react引入html2canvas和jspdf生成PDF打印及下载_拷贝程序猿的博客-程序员宅基地_react 打印pdf

项目场景:项目场景:系统新增打印发货单功能开工开工两种方式引入依赖包npm install html2canvas jspdf --saveyarn add html2canvas jspdf --save直接上代码:提示:项目引入组件较多,自行理解代码即可。注意opacity: 0 处为点睛之笔。防止拷贝的dom覆盖当前样式故隐藏,display:none是不行的,pdf会白纸的哦!import React, { createRef, LegacyRef } from 'reac

参数化查询 但未提供该参数(将null插入数据库)_Young丶的博客-程序员宅基地_参数化查询需要参数但未提供该参数

当你是使用参数化查询时为参数赋值时,比如command.Parameters.Add("@a",SqlDbType.Text,30).Value=a;当a=null是将报错:错参数化查询 '(@a varchar(100)....' 需要参数 '@a',但未提供该参数只是因为你给a的值为null,而数据库中的null(空)是System.DBNull 类型的不是同一类。所以在插

charles 请求出现乱码_Charles中windows版本解决response乱码问题_今忱的博客-程序员宅基地

在charles.ini中,手动增加一个vmarg.6=-Dfile.encoding=UTF-8即可working.directory=.classpath.1=lib/charles.jarmain.class=com.xk72.charles.gui.MainWithClassLoadervm.version.min=1.8vm.location=jre\bin\server\jvm.dll...

爬虫能用到,将爬到的字典转为dataframe格式_了因和尚的博客-程序员宅基地

import pandas as pd #导入pandas包data = pd.read_csv("2.csv") #读取csv文件#print (data.head(5))#print(data.columns)#print(data.shape)order = ['time', 'match', 'home', ...

售价1.7万!华为5G折叠手机发布,到底值不值得买?_weixin_33851429的博客-程序员宅基地

曾经爱理不理,现在高攀不起!2月24日,华为推出首款5G折叠手机!网友们沸腾了!大胆的折叠机身设计,搭载5G技术的高端配置,以及让人感叹的昂贵售价!我们一起来看看吧!机身配置配置上看,华为Mate X搭载了8英寸的柔性可折叠OLED显示屏,麒麟980处理器,内置两块电池,容量为4500mAh,支持快充,30分钟可充电85%。卖点之一:折叠这可难坏了买手机壳的哟~折叠是Mate X...

推荐文章

热门文章

相关标签