郑州大数据培训 揭秘mapreduce的神秘面纱
刚毕业,踏入社会,面对五花八门的招聘广告,超级茫然,入职了几家互联网公司,但很快都是无疾而终。原因主观的,客观的都有,但是追根究底,还在于自己,思考犹豫了几个晚上,最终决定报班,继续学习,提高自身的能力,去赢得一个更高的起点。
来到千锋可以说是意外,上了几堂千锋郑州大数据培训班的课程,便下定决心,开始五个月的学习。现在的培训已经过半,对自己的努力和收获非常满意,也非常感谢这段经历,让我找回了从前积极向上,干劲十足的自己,不仅仅学到知识,还有底气去面对未来的任何困难与考验,眼前的辛苦都将转化为对未来挑战的力量,积累知识,重整逻辑,加油向未来! Mapreduce的知识总结,记录这段时间的学期,和大家分享。
一、mapreduce的定义
分布式并行离线计算框架,是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架;Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上;与HDFS解决问题的原理类似,HDFS是将大的文件切分成若干小文件,然后将它们分别存储到集群的各个主机中。同样原理,mapreduce是将一个复杂的运算切分成若干个子运算,然后将它们分别交给集群中的各个主机,由各个主机并行运算。引入mapreduce框架后,开发人员可以将绝大部分工作集中在业务逻辑的开发上,而将分布式计算中的复杂性交由框架来处理。
二、MapReduce将这个并行计算过程抽象到两个函数
Map(映射):对一些独立元素组成列表的每一个元素进行指定的操作,可以高度并行。
Reduce(化简 归约):对一个列表的元素进行合并。一个简单的MapReduce程序只需要指定map()、reduce()、input和output,剩下的事由框架完成。
三、Mapreduce的几个关键名词
Job :用户的每一个计算请求称为一个作业。
Task:每一个作业,都需要拆分开了,交由多个主机来完成,拆分出来的执行单位就是任务。它又能细划为如下三种类型的任务:
1) Map:负责map阶段的整个数据处理流程
2) Reduce:负责reduce阶段的整个数据处理流程
3) MRAppMaster:负责整个程序的过程调度及状态协调
四、 具体流程说明
一个mr程序启动的时候,最先启动的是MRAppMaster,MRAppMaster启动后,根据本次job的描述信息,计算出需要的maptask实例数量,然后向集群申请机器启动相应数量的maptask进程。
maptask进程启动之后,根据给定的数据切片范围进行数据处理,主体流程为是利用客户指定的inputformat来获取RecordReader读取数据,形成输入KV对。将输入KV(k是文件的行号,v是文件一行的数据)对传递给客户定义的map()方法做逻辑运算,并将map()方法输出的KV对收集到缓存。将缓存中的KV对按照K分区排序后不断溢写到磁盘文件
MRAppMaster监控到所有maptask进程任务完成之后,会根据客户指定的参数启动相应数量的reducetask进程,并告知reducetask进程要处理的数据范围(数据分区)
Reducetask进程启动之后,根据MRAppMaster告知的待处理数据所在位置,从若干台maptask运行所在机器上获取到若干个maptask输出结果文件,并在本地进行重新归并排序,然后按照相同key的KV为一个组,调用客户定义的reduce()方法进行逻辑运算,并收集运算输出的结果KV,然后调用客户指定的outputformat将结果数据输出到外部存储mapreduce中,map阶段处理的数据如何传递给reduce阶段,是mapreduce框架中最关键的一个流程,这个流程就叫shuffle。
简述于此,说是揭秘,也仅仅是为大家提供一个简要的介绍,每个程序员所面对的编码是无穷无尽的,未知而不定期出现的各种bug也是没有尽头的,学无止境,认真的对待课堂中的每分每秒,坚信自己一定会有所收获!与君共勉!
相关推荐HOT
更多>>大数据培训学习什么,你了解多少
大数据培训学习什么?你了解多少?随着互联网技术的不断发展,大数据技术开始走进人们的视野,并成为现阶段吃香的技术能力之一。那么熟练掌握大...详情>>
2023-03-16 15:16:01云计算培训怎么样?可靠吗
云计算培训怎么样?可靠吗?靠不靠谱要看你什么要求了,因人而异。但如果你是想通过培训机构快速掌握好技能,然后进入行业,这个一般都没有问题...详情>>
2023-03-07 14:51:00java编程工资多少?主要学哪些内容
java编程工资多少?主要学哪些内容?java程序员的月收入在6000-20000不等,在一线城市有工作经验的java程序员的薪资收入会高一些,在二三线城市...详情>>
2023-02-24 14:56:07it工程培训机构,云计算难学吗
下面给小伙伴们列举一个学习大纲参考: 第一阶段: 零基础入门 1、计算机基础 2、Raid设置与网络服务基础 3、网络基础 第...详情>>
2022-12-01 17:48:04