龙空技术网

一起来学大数据|Map与Reduce双剑合并,里应外合解数据(原理篇)

Mario女陶 568

前言:

目前朋友们对“map合并方式”大致比较注意,我们都需要分析一些“map合并方式”的相关内容。那么小编在网摘上收集了一些有关“map合并方式””的相关内容,希望咱们能喜欢,各位老铁们快快来了解一下吧!

我们已经能都搭建一个简单的大数据集群和使用java进行简单的操作,大家可以查看之前的文章进行学习。

一起来学大数据|离线本地Hadoop集群的搭建,你我共相连

JavaAPI操作下HDFS,跨平台之间的交流,一起看云端的故事

下面,我们一起来看大数据中的MapReduce。

MAPREDUCE原理

MapReduce是我们在大数据学习中使用的一个编程的框架,它是一个分布式的运算程序。它是我们用于数据分析的核心框架。

其中,它的核心功能就是将我们编程所写出来的业务代码和默认的组件整合成一个完整的分布式运算程序,之后发送到一个hadoop集群上。

为什么要使用MapReduce大数据时代,我们在单机上来处理海量的数据会收到硬件资源的限制,是没有办法来胜任的。如果将我们的单机版的程序扩展到集群中,这样会增加程序的开发梯度的。我们在使用了MapReduce框架之后,我们这些开发人员可以将大部分的工作交给框架来处理。

下面给大家一个需求参考:

而我们使用了框架之后,就可以变成这个样子。

MRAppMaster(mapreduce application master)MapTaskReduceTaskMAPREDUCE框架结构及核心运行机制

在MapReduce中,完整的框架在运行是会有3大进程:

1、MRAppMaster:它是用来负责整个程序的过程调度和状态协调

2、mapTask:此进程是用来管理map阶段的整个数据处理流程

3、ReduceTask:此进程是用来管理reduce阶段的整个数据处理流程

MR程序运行流程

1-一个mr程序启动之后,最先开始启动的是我们的MRAPPMaster,它会根据此次启动的Job信息去计算需要使用的MaskTask实例的数量,然后向集群中申请同样数量的masktask。

2-在masktask打开之后,它是根据我们代码给定的数据切片范围对数据进行处理:

A-利用我们代码所指定的inputformat去获取RecordReader读取数据,处理成KV对形式B-将输入KV对传递给我们定义的map()方法,去做一些逻辑的运算,并在之后将map()方法输出的KV对收集到缓存C-将缓存中的KV对按照K分区排序后不断溢写到磁盘文件

3-当所有的maptask进程结束之后,MRAppMaster继续做出反应,开启reducetask进程,并告诉这些进行数据的分区是什么。

4-等到进程开启,reducetask进程会根据上面传过来的数据进行获取maptask的输出数据,并进行重新的运算, 按照相同key的KV为一个组,调用客户定义的reduce()方法进行逻辑运算,并收集运算输出的结果KV,然后调用客户指定的outputformat将结果数据输出到外部存储。

这就是我们今天的MapReduce原理篇,明天我们做一个简单的案例,让大家体验一把~

个人原创,如有什么不足请多多指正~觉得还不错话,记得关注、转发、收藏yo!

感谢坚持关注的朋友~

世界很大,幸好有你~

欢迎在评论区留下你的问题或困惑,我将每天与你分享我的观点和心得。

聚焦最新科技咨讯,探寻未来智能领域,我是女陶Mario

版权声明:文章版权归码里行间所有,未经允许,严禁转载

标签: #map合并方式 #mapreduce可以处理哪些数据