Map/Reduce是一个聚合工具。比如SQL和mongodb的group(by),countdistinct等都是聚合命令。 Map/Reduce其实是一个分布式计算的思想的实现的软件框架。就是你遵循这个框架的规范,编写上层代码可以实现你的分布式计算,并能把所有计算结果聚合到一起得到最终
Map/Reduce是一个聚合工具。比如SQL和mongodb的group(by),countdistinct等都是聚合命令。Map操作是的对每个元素进行操作,换句话说,Map操作将产生一组全新的数据,而原来的数据保持不变。因此,它是高度并行的。Reduce操作虽然不如Map操作并行性那么好,但是它总会得到一个相对简单的结果,大规模运算也相对,因此也是比较适合并行的。
MapReduce任务是用来处理键/值对的。该框架将转换每个输入的记录成一个键/值对,每对数据会被输入给Map作业。Map任务的输出是一套键/值对,原则上,输入是一个键/值对,但是,输出可以是多个键/值对。然后,它对Map输出键/值对分组和排序。然后,对排序的每个键值对调用一次Reduce方法,它的输出是一个键值和一套关联的数据值。Reduce方法可以输出任意数量的键/值对,这将被写入工作输出目录下的输出文件。如果Reduce输出键值保持和Reduce输入键值一致,最终的输出仍然保持排序。该框架提供了两个处理过程来管理MapReduce作业:
TaskTracker在集群中的计算节点上管理和执行各个Map和Reduce作业。JobTracker接受作业提交,提供作业的监测和控制,管理任务,以及分配作业到TaskTracker节点上。一般来说,每个集群有一个JobTracker进程,集群中的每个节点有一个或多个TaskTracker进程。JobTracker是一个关键模块,它出现问题会引起系统的瘫痪,如果一个TaskTracker出现问题,JobTracker会调度其他TaskTracker进程重试。
Copyright © 2019- fujy.cn 版权所有
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务