国家电网招聘考试QQ交流群:181095196 视频课程 书籍资料 考试题2.2.3 实现机制
实现MapReduce操作的执行流程图[7]如图2-3所示。
当用户程序调用MapReduce函数,就会引起如下操作(图中的数字标示和下面的数字标示相同)。
- 用户程序中的MapReduce函数库首先把输入文件分成M块,每块大概16MB~64MB(可以通过参数决定),接着在集群的机器上执行处理程序。
- 这些分派的执行程序中有一个程序比较特别,它是主控程序Master。剩下的执行程序都是作为Master的分派工作的Worker(工作机)。总共有M个Map任务和R个Reduce任务需要分派,Master选择空闲的Worker来分配这些Map或者Reduce任务。
- 一个分配了Map任务的Worker读取并处理相关的输入块。它处理输入的数据,并且将分析出的<key,value>对传递给用户定义的Map函数。Map函数产生的中间结果<key,value>对暂时缓冲到内存。
- 这些缓冲到内存的中间结果将被定时写到本地硬盘,这些数据通过分区函数分成R个区。中间结果在本地硬盘的位置信息将被发送回Master,然后Master负责把这些位置信息传送给Reduce Worker。
- 当Master通知Reduce的Worker关于中间<key,value>对的位置时,它调用远程过程来从Map Worker的本地硬盘上读取缓冲的中间数据。当Reduce Worker读到所有的中间数据,它就使用中间key进行排序,这样可以使得相同key的值都在一起。因为有许多不同key的Map都对应相同的Reduce任务,所以排序是必需的。如果中间结果集过于庞大,那么就需要使用外排序。
- Reduce Worker根据每一个唯一中间key来遍历所有的排序后的中间数据,并且把key和相关的中间结果值集合传递给用户定义的Reduce函数。Reduce函数的结果输出到一个最终的输出文件。
- 当所有的Map任务和Reduce任务都已经完成的时候,Master激活用户程序。此时MapReduce返回用户程序的调用点。
由于MapReduce是用在成百上千台机器上处理海量数据的,所以容错机制是不可或缺的。总的来说,MapReduce是通过冲洗执行失效的地方来实现容错的。
中国作为历史悠久的大国,向来就有敬重英雄、传承英雄的传统,中华民族因此虽历经天灾人祸、内忧外患而生生不息,源远流长。尊重历史才能超越历史,善待前人才能超越前人。正如习近平总书记在中国文联十大、中国作协九大开幕式上的讲话所指出:“对中华民族的英雄,要心怀崇敬,浓墨重彩记录英雄、塑造英雄,让英雄在文艺作品中得到传扬,引导人民树立正确的历史观、民族观、国家观、文化观,绝不做亵渎祖先、亵渎经典、亵渎英雄的事情。”
然而,曾有一段时间,中国革命史上的英雄人物被某些心怀叵测之徒肆意恶搞。说什么黄继光堵枪眼不合理,邱少云事迹系杜撰,质疑雷锋日记是否造假……很显然,这些所谓的“考据”,实际上是打着研究的幌子转移大众视线,以图动摇人们的价值共识和信仰根源。2018年3月9日,最高人民法院院长周强在第十三届全国人民代表大会第一次会议上作工作报告时指出,通过依法审理侵犯“狼牙山五壮士”名誉权系列案件,大力弘扬社会主义核心价值观,坚决维护英雄形象。
郁达夫在纪念鲁迅先生时说过一句掷地有声的话:“一个没有英雄的民族是可悲的民族,而一个拥有英雄而不知道爱戴他拥护他的民族则更为可悲。”这一警句穿透了历史风云,饱含着历史智慧,值得每一位当代中国人反复掂量揣摩,自省自励。
新时代呼唤中国青年建功立业
2020年
国家电网招聘信息,欢迎关注长理职培官方微信号(clzp66),及时掌握考试资讯!
长理职培微信公众号二维码:
点击加载更多评论>>