浅谈MapReduce

本文主要探讨了MapReduce的核心设计理念,包括Hadoop RPC框架、作业提交流程、JobTracker与TaskTracker的角色、Task的执行过程以及性能调优。此外,还简述了MapReduce的局限性和下一代的Yarn架构,展示其在分布式计算领域的演进。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         从今天开始,本人将会开始对另一项技术的学习,就是当下炙手可热的Hadoop分布式就算技术。目前国内外的诸多公司因为业务发展的需要,都纷纷用了此平台。国内的比如BAT啦,国外的在这方面走的更加的前面,就不一一列举了。但是Hadoop作为Apache的一个开源项目,在下面有非常多的子项目,比如HDFS,HBase,Hive,Pig,等等,要先彻底学习整个Hadoop,仅仅凭借一个的力量,是远远不够的。所以,我选择了逐个击破的办法,我们都知道,Hadoop中最核心的2个架构体系就是MapReduce+HDFS,一个分布式计算框架+加上分布式文件系统,就构成了一个基本的分布式计算平台,在上面搭配上面Hive,Pig等查询工具,就可以很好的进行数据挖掘,机器学习方面的操作了。今天本人所学习的是大名鼎鼎的MapReduce计算框架,这个思想是Google公司在04年左右的时候,提出来的,在一篇论文中提出来,当时Google公司并没有对此代码进行开源,后来是别人依据此思想进行了实现,并经历过代码的不断的发展,演变,才有了后来的Hadoop平台的诞生。

         也许在很多人看来,MapReduce不就是一个简简单单的Map+Reduce函数嘛,那我只能告诉你,你只明白了它上面中的沧海一粟,背后的许许多多的复杂的原理设计,是一般所无法想象的。这一段,通过一系类的书籍,学习,稍稍形成了我对MapReduce思想的新的看法,我就简单的说说的我的理解。在MapReduce的过程一把分为5个过程,这个稍稍了解Hadoop的人应该都知道:

InputFormat------>Mapper------->Partitioner------>Reducer--------->OutputFormat

一个线性的执行流程。在Hadoop中,已经默认提供了InputFormat,Partitioner,OutputFormat的步骤,所以一般我们只需要重写自己的Map映射方法和Reduce处理函数就可以了。这就是我们通俗我们所说的Hadoop的编程模型

        下面看看在MapReduce中的相关的核心几个技术设计:

       1.Hadoop RPC框架的设计。Hadoop的出现,使得人们开发分布式系统的门槛低了很多,我们只需把更多的时间用在自己的业务逻辑,而不需要关注一些网络通信,容错机制等比较细节的东西。因为这些Hadoop都帮我们处理好了,这就是这个平台的神奇之处。而这里所提到的Hadoop RPC框架就是对于程序的网络请求所做的一完美封装。Hadoop RPC框架是基于Java NIO所设计的,中间还有了Java中的动态代理,还有一些反射机制,因此在处理并发的性能上还是能够接受的。

        2.Hadoop中的作业提交流程。要想学习MapReduce的思想,当然要首先知道在Hadoop中整个作业的执行流程。下面是一张图描述了这个过程:


        3.在Hadoop中,必须知道2个概念JobTracker和TaskTracker.作为Hadoop核心技术之一的JobTracker,里面的启动过程也是一个非常重要的内容,他与TaskTracker的HeartBeat心跳机制,JobTracker和TaskTracker如何保持信息维护。在JobTracker中,会出现土匪任务推测式执行的东西,为了防止个别Task严重脱慢整体,会额外开启一个备用任务。这些都是JobTracker干的事。

        4.TaskTracker作为与JobTracker的另外一种设计,也包了很多的内容。他不仅仅是简简单单的执行任务。他也有自己的一套启动流程。TaskTracker如何将自己当前的信息通过心跳机制发送给Master。TaskTracker内部如何执行由JobTracker发布过来的命令。

        5.Task作为作业的一个任务载体,内部的实现过程也值得我们好好学习。Task分为Map Task 和Reduce Task。Map Task 可以分解为Read,Map,Collect,Spill,Combine,后三步是重点,而Reduce Task 可分解为Shuffle,Merge,Sort,Reduce,Write,其中前三步为重点。

       6.以上3点都是Hadoop中的比较核心的技术,下面介绍几个高级点的知识,Hadoop的性能调优,这个可以从OS角度,从JVM的层次去调,当然可以放低一个角度,从任务和作业的角度去调整参数。在后面的Hadoop的后来的发展演变中,增加了很多安全方面的东西,比如之前任何用户只要知道地址,就可以随便往哪个block上读取数据,这显然是非常危险的,在Hadoop1.0版本左右,增加了第三方的认证方式,同时能够保证向后兼容。

        尽管MR的使用已经非常普遍了,但是他的缺点和不足,也越来越显得明显,他的扩展性让人诟病,所以就有了下一代的MapReduce,俗称Yarn架构。简单一句话,他把MR的资源管理和作业调度给分开了。还能整合多平台的框架,发挥各自的优点,看来对于未来拥有着无限的可能性啊。

好的,我会从以下50个方面进行论述: 1. 介绍大数据处理平台和算法的概念 2. MapReduce算法的定义及原理 3. Hadoop平台的介绍 4. Hadoop平台的架构及组件 5. Hadoop平台中的HDFS介绍 6. Hadoop平台中的YARN介绍 7. Hadoop平台中的MapReduce介绍 8. Hadoop平台中的Hive介绍 9. Hadoop平台中的Pig介绍 10. Hadoop平台中的Sqoop介绍 11. Hadoop平台中的Flume介绍 12. Hadoop平台中的Kafka介绍 13. Hadoop平台中的Storm介绍 14. Hadoop平台中的Spark介绍 15. Hadoop平台中的Flink介绍 16. Hadoop平台中的HBase介绍 17. Hadoop平台中的Zookeeper介绍 18. Hadoop平台中的Mahout介绍 19. Hadoop平台中的Oozie介绍 20. Hadoop平台中的Ambari介绍 21. Hadoop平台中的Kubernetes介绍 22. Hadoop平台中的Docker介绍 23. MapReduce算法的优缺点 24. MapReduce算法与传统算法的比较 25. MapReduce算法的适用场景 26. MapReduce算法在数据分析中的应用 27. MapReduce算法在机器学习中的应用 28. MapReduce算法在自然语言处理中的应用 29. MapReduce算法在图像处理中的应用 30. MapReduce算法在音视频处理中的应用 31. MapReduce算法在金融风控中的应用 32. MapReduce算法在互联网广告中的应用 33. MapReduce算法在物联网中的应用 34. MapReduce算法在生命科学中的应用 35. MapReduce算法在环境监测中的应用 36. MapReduce算法在能源管理中的应用 37. MapReduce算法在交通管理中的应用 38. MapReduce算法在电商平台中的应用 39. MapReduce算法在社交网络中的应用 40. MapReduce算法在医疗保健中的应用 41. MapReduce算法在教育领域中的应用 42. MapReduce算法在金融领域中的应用 43. MapReduce算法在电信领域中的应用 44. MapReduce算法在制造业中的应用 45. MapReduce算法在政府管理中的应用 46. MapReduce算法在人工智能中的应用 47. MapReduce算法在区块链中的应用 48. MapReduce算法在游戏开发中的应用 49. MapReduce算法在音乐产业中的应用 50. 总结和未来发展方向 其中,每个方面都会结合实际案例来说明,以帮助大学生更好地理解和应用大数据处理平台和算法。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值