Hadoop之map/reduce介绍

来源:互联网 发布:角落生物 淘宝 编辑:程序博客网 时间:2024/06/08 03:13
map和reduce两个词没有什么意义,hadoop的分布式计算框架分为两个阶段,第一个是map阶段,第二个是reduce阶段。map阶段负责对输入文件进行切分处搜索理,然后汇总再分组给reduce进行处理,以达到高效的分布式计算效率
 
 
Key Word:分布式计算、并行计算Map/Reduce是一个聚合工具。比如SQL和mongodb的group(by),count distinct等都是聚合命令。Map/Reduce其实是一个分布式计算的思想的实现的软件框架。就是你遵循这个框架的规范,编写上层代码可以实现你的分布式计算,并能把所有计算结果聚合到一起得到最终一个简单的结果。基于Map/reduce写出来的应用能运行在上千台服务器组成的集群上,并以一种可靠的容错的方式并行处理数据。具体过程为:    Map/Reduce可以把一个任务分解为很多个可以并行化处理的子任务,这些子任务被分配到不同服务器上进行并行的计算,当所有服务器的计算都完成后,再把结果聚合到一起形成一个最终的结果。    用户定义一个map函数来处理一个key/value对以生成一批中间的key/value对,再定义一个Reduce函数将所有这些中间的有着相同keyvalues合并起来。    简单的说来,Map是把一组数据一对一的映射为另外的一组数据,其映射的规则由一个函数来指定,比如对[1, 2, 3, 4]进行乘2的映射就变成了[2, 4, 6, 8]。Reduce是对一组数据进行归约,这个归约的规则由一个函数指定,比如对[1, 2, 3, 4]进行求和的归约得到结果是10,而对它进行求积的归约结果是24。 

    Map操作是独立的对每个元素进行操作,换句话说,Map操作将产生一组全新的数据,而原来的数据保持不变。因此,它是高度并行的。Reduce操作虽然不如Map操作并行性那么好,但是它总会得到一个相对简单的结果,大规模运算也相对独立,因此也是比较适合并行的。

     MapReduce任务是用来处理键/值对的。该框架将转换每个输入的记录成一个键/值对,每对数据会被输入给Map作业。Map任务的输出是一套键/值对,原则上,输入是一个键/值对,但是,输出可以是多个键/值对。然后,它对Map输出键/值对分组和排序。然后,对排序的每个键值对调用一次 Reduce方法,它的输出是一个键值和一套关联的数据值。Reduce方法可以输出任意数量的键/值对,这将被写入工作输出目录下的输出文件。如果 Reduce输出键值保持和Reduce输入键值一致,最终的输出仍然保持排序。

该框架提供了两个处理过程来管理MapReduce作业:

  • TaskTracker在集群中的计算节点上管理和执行各个Map和Reduce作业。
  • JobTracker接受作业提交,提供作业的监测和控制,管理任务,以及分配作业到TaskTracker节点上。

一般来说,每个集群有一个JobTracker进程,集群中的每个节点有一个或多个TaskTracker进程。JobTracker是一个关键模块,它出现问题会引起系统的瘫痪,如果一个TaskTracker出现问题,JobTracker会调度其他TaskTracker进程重试。

Map/reduce算法包括几个步骤:    1、Partition(划分数据)       把数据划分为N份    2、Map       除了划分数据,还需要把运算该数据的代码也Map到每个运算节点上面去并发执行。这N节点各自执行自己的任务,执行完毕以后把执行结果返回    3、Partition(归并划分)       这N份执行结果需要归并,于是我们再次划分数据    4、Reduce       把Reduce代码和Reduce数据分发到M个节点执行,每个节点执行完毕返回数据。如果需要再次Reduce可以再次执行。最终Reduce为一个总共的结果。    其实我们需要编写的代码只有两个方法:一个map方法,实现如何执行每份数据,一个reduce方法,实现如何归并每份数据。 框架会对map操作的输出进行排序,然后把结果输入给reduce任务。具体参考图:Map/Reduce <wbr>思想介绍总结:     map/reduce的思想是非常简单的,换句话说,任何语言都能实现。google的map/reduce之所以出名,不是因为这个思想多巧妙,而是因为它把分布式计算用一种非常简易的方式总结了出来。    任何分布式计算,最核心的任务都是:1、任务划分 2、数据归并,如果不能对任务划分,那么用什么分布式框架都是没用的。比如对超大型矩阵的聚类计算,如果算法本身无法划分,那么根本没办法分布式。所以一切涉及到分布式的问题,划分是最重要的。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 天天运动为什么还便秘怎么办 小孩学习注意力不集中怎么办 8个月宝贝太好动怎么办 学生在校受伤家长该怎么办 多动症小孩爱动手指怎么办 孩子大了不听话该怎么办 流产后吹了风怎么办 怀孕1周内喝酒了怎么办 怀孕6周喝酒了怎么办 怀孕后喝了酒怎么办 不知道怀孕喝酒了怎么办 不知道怀孕了喝酒了怎么办 怀孕5天喝酒了怎么办 打孩子耳光后脸肿了怎么办 老师说上课不专心怎么办 孩子不专心好动马虎怎么办 学生上课不认真听讲怎么办 一年级孩子上课不注意听讲怎么办 一年级孩子上课说话不听课怎么办 一年级孩子上课不听课怎么办 小学一年级学生上课不专心怎么办? 小孩听课注意力不集中怎么办 小孩子上课精神不集中怎么办 孩子说我不画了怎么办 幼儿园小朋友上课不专心怎么办 孩子写作业不专心怎么办 小孩做作业不专心怎么办 孩子上课精力不集中怎么办 四岁宝宝吃饭慢怎么办 5岁宝宝吃饭慢怎么办 小学一年级上课不专心怎么办 5岁儿童不专心怎么办 小孩子做作业不专心怎么办 孩子做作业不专心怎么办 小孩学了就忘怎么办 小孩学过就忘了怎么办 做事老是注意力不集中怎么办 做事无法专注注意力不集中怎么办 幼儿园孩子上课不认真听讲怎么办 孩子在课间打闹家长应该怎么办 孩子打闹家长额钱怎么办