温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
本节课我们将讨论一下mapreduce计算模型。Google在2004年的时候发表了名为map predu计算模型的论文,用于解决page rank的问题。这篇论文奠定了大数据分布式计算的理论基础。Map reduceduce通过拆分合并的方式可以解决大数据的离线计算问题。尽管在目前的大数据开发中,直接使用map reduceduce的场景比较少,但它对于我们理解Spark和flink的工作机制和原理非常重要。注意,Map reduceduce是一个离线计算模型,它与编程语言无关。在Hadoop体系中使用了Java实现mapreduce,而在mango DB中使用了javascript实现map reduceduce. 再说一遍,Map reduceduce本身与编程语言无关。最后说一遍,Map reduceduce本身与编程语言无关。重要的事情说了三遍,你记住了吗?下面通过一个具体的事例来说明map reducedu的处理机制,这里有一个大的计算任务,要对1~10的数字进行求和。假设一台服务器。
01:00
无法完成计算,那看看map reducece如何完成的吧。首先,Map reducece会将大任务拆分成若干个小任务,例如拆分后,1~4的求和是第一个小任务,5~7的求和是第二个小任务,8~10的求和是第三个小任务。只要任务足够小,那么这三个小任务就可以分别交给三台服务器进行计算。第一个小任务交给第一台服务器,计算的结果是10,第二个小任务交给第二台服务器,计算的结果是18,第三个小任务交给第三台服务器,计算的结果是27。但这并不是最终的结果,接下来需要将每个小任务的结果进行合并计算,最终得到结果55。这里的第一个拆分阶段叫做map,第二个合并阶段叫做reduce。这种先拆分在合并的处理方式就是map reduce的核心,而这种思想也被借鉴到了大数据计算引擎Spark和flink中。如果要在hadoop中开发Java程序,实现mapreduce,则需要开发两个类。
02:00
一个类实现map,另一个类实现reduce。现在你已经知道map reduce计算模型了,那你知道如何开发map reduce程序吗?欢迎评论区留言讨论好了,记得点加号关注赵玉强老师。
我来说两句