栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

MapReduce详解

MapReduce详解

目录

(一)MapReduce的基本知识

(二)、MapReduce计算框架概述

(三)MapReduce 具体计算过程


(一)MapReduce的基本知识

1、 MapReduce的使用场景:MapReduce实现分布式计算。

2、方便编程人员在不熟悉分布式并行编程计算情境下,对海量分布的大数据进行处理。

3、mapreduce 有缺陷存在。它适用于数据量很大,并且可以分解成小块数据同时处理,结果是正确的情况。对于一些不能分开求解的问题,不能使用mapreduce。

4、mapreduce的工作机制主要包括两部分,map过程,reduce过程。map过程执行map函数对输入的键值对处理,输出仍为键值对。reduce阶段执行reduce函数。

5、可以自定义数据类型。Hadoop中的数据类型其实质为对Java数据类型的封装。在大数据处理下,为了使数据传输更为高效,对所有类型的数据都以字节流的形式传输,因此Hadoop中的数据类型对Java中的数据类型进行了封装。通过实现Writable接口,可以自定义数据类型。

6、数据输入格式默认是TextInputFormat类型对象,TextInputFormat类继承于FileInputFormat类,FileInputFormat类继承自InputFormat抽象类。InputFormat抽象类中声明了三个抽象方法,可以通过重载RecordWriter方法重新设置输入格式。

7、数据的输出格式默认是TextOutputFormat类型对象,TextOutputFormat类继承于FileOutputFormat类,FileOutputFormat类继承自OutputFormat抽象类。OutputFormat抽象类中声明了三个抽象方法,可以通过重载RecordWriter方法重新设置输出格式。

8、通过实现对应接口,可以实现不同的分区方式等。

(二)、MapReduce计算框架概述

mapreduce计算框架是将代码往数据端移动。

主要通过两个阶段来实现对问题的处理。map阶段、reduce阶段。

map阶段有许多map进程同时并行。由于map阶段的输入由inputformat对象决定,因此可以使用默认的分割方法,也可以自定义分割方式。map阶段对输入进行分区(默认是hash方法,目的:一个分区对应一个reduce),排序、合并等。

reduce阶段有许多的reduce进程同时并行。输入即为map函数的输出,用户自定义的reduce函数决定reduce的输出,但输出格式一定为形式。

(三)MapReduce 具体计算过程

输入-----》 map -----》shuffle ------》reduce ------》输出

1. map 阶段

输入:一般来说,每一个数据块对应一个map 计算。map 端在读取HDFS中数据块中的数据时,会调用Hadoop中的 inputformat 接口,以键值对的方式作为map 输入。输出:通过用户自己定义的map 函数对数据进行操作,仍以键值对的方式输出

2. shuffle 阶段

        shuffle 阶段描述从 map 函数输出到 reduce函数输入的这一过程 。

map 阶段的shuffle。

分区:MapReduce首先会调用分区接口对map输出的不同key-value分区,默认是对key值进行Hash运算,也可以通过重载分区接口的方法实现。

排序:对每个分区的key-value键值对根据key值排序。

合并:对每个分区的key-value键值对进行合并运算处理,减少在map和reduce之间的数据传输量。

 归并:写入磁盘的多个文件会在map过程完成之后通过归并,形成一个大文件。归并是将不同文件 相同分区的key-value划分到同一个区,然后排序、合并处理形成。                                

   reduce 端的shuffer

将所有map端的数据读入缓存,写入磁盘,在所有数据读取完成之后,将所有文件数据再一次归并处理。

3. reduce阶段。

reduce阶段的任务就是根据用户定义的reduce函数,对输入的key-value执行函数,并将最终结果输出到文件系统。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/784284.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号