mapreduce计算的主要流程是什么?
一、mapreduce计算的主要流程
1. 分片、格式化数据
输入Map阶段的数据源,必须经过分片和格式化操作。其中:
分片操作:指的是将源文件划分为大小相等的小数据块(Hadoop2.x中默认128M),也就是分片(split),Hadoop会为每一个分片构建一个Map任务,并由该任务运行自定义的map()函数,从而处理分片里的每一条记录;格式化操作:将划分好的分片(split)格式化为键值对
2. 执行MapTask
每个Map任务都有一个内存缓冲区(缓冲区大小100M),输入的分片(split)数据经过Map任务处理后的中间结果,会写入内存缓冲区中。如果写入的数据达到内存缓冲的阀值(80M),会启动一个线程将内存中的溢出数据写入磁盘,同时不影响map中间结果继续写入缓冲区。在溢写过程中,MapReduce框架会对Key进行排序,如果中间结果比较大,会形成多个溢写文件,最后的缓冲区数据也会全部溢写入磁盘形成一个溢写文件,如果是多个溢写文件,则最后合并所有的溢写文件为一个文件。
3. 执行Shuffle过程
MapReduce工作过程中,map阶段处理的数据如何传递给Reduce阶段,这是MapReduce框架中关键的一个过程,这个过程叫做Shuffle。Shuffle会将MapTask输出的处理结果数据,分发给ReduceTask,并在分发的过程中,对数据按key进行分区和排序。
4. 执行ReduceTask
输入ReduceTask的数据流是
5. 写入文件
MapReduce框架会自动把ReduceTask生成的
延伸阅读:
二、MapReduce的概念
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念”Map(映射)”和”Reduce(归约)”,和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
以上就是关于mapreduce计算的内容希望对大家有帮助。

相关推荐HOT
更多>>
为什么做因子分析?可以解决什么问题??
一、什么是因子分析?因子分析的起源是这样的,1904年英国的一个心理学家发现学生的英语、法语和古典语成绩非常有相关性,他认为这三门课程背后...详情>>
2023-10-14 23:59:00
文本分析有哪些阶段?
一、文本分析有哪些阶段?要实施文本分析,您需要遵循包含 4 个阶段的系统性流程。第 1 阶段 — 数据收集在此阶段,您从内部或外部资源收集文本...详情>>
2023-10-14 23:00:09
计算机网络可以做什么?
一、什么是计算机联网?计算机联网是指相互连接的计算设备,它们可以相互交换数据和共享资源。这些联网设备利用称为通信协议的规则系统,通过物...详情>>
2023-10-14 19:39:09
云存储有哪些类型?
一、云存储有哪些类型云存储主要有三种类型:对象存储、文件存储和数据块存储。每种类型都有自己的优势和对应的使用场景。1、对象存储组织必须...详情>>
2023-10-14 18:59:10