提纲 7.1概述 7.2 MapReduce体系结构 7.3 MapReduce工作流程 74实例分析: WordCount 7.5 MapReduce的具体应用 7.6 MapReduce编程实践 本PPT是如下教材的配套讲义: 21世纪高等教育计算机规划教材 《大数据技术原理与应用 —概念、存储、处理、分析与应用》 (2015年8月第1版) 厦门大学林子雨编著,人民邮电出版社 SB№:9787-115392879 欢迎访问《大数据技术原理与应用》教材官方网站: http://dblab.xmu.edu.cn/post/bigdata 《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 提纲 • 7.1 概述 • 7.2 MapReduce体系结构 • 7.3 MapReduce工作流程 • 7.4 实例分析:WordCount • 7.5 MapReduce的具体应用 • 7.6 MapReduce编程实践 欢迎访问《大数据技术原理与应用》教材官方网站: http://dblab.xmu.edu.cn/post/bigdata 本PPT是如下教材的配套讲义: 21世纪高等教育计算机规划教材 《大数据技术原理与应用 ——概念、存储、处理、分析与应用》 (2015年8月第1版) 厦门大学 林子雨 编著,人民邮电出版社 ISBN:978-7-115-39287-9
7.1概述 分布式并行编程 7.1.2 MapReduce模型简介 7.1.3 Map和 Reduce函数 《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 7.1 概述 • 7.1.1 分布式并行编程 • 7.1.2 MapReduce模型简介 • 7.1.3 Map和Reduce函数
》7.11分布式并行编程 “摩尔定律”,CPU性能大约每隔18个月翻一番 从2005年开始摩尔定律逐渐失效,需要处理的数据量快速增加,人 们开始借助于分布式并行编程来提高程序性能 分布式程序运行在大规模计算机集群上,可以并行执行大规模数据处 理任务,从而获得海量的计算能力 谷歌公司最先提出了分布式并行编程模型 MapReduce, Hadoop MapReduce是它的开源实现,后者比前者使用门槛低很多 《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 7.1.1分布式并行编程 •“摩尔定律”, CPU性能大约每隔18个月翻一番 •从2005年开始摩尔定律逐渐失效,需要处理的数据量快速增加,人 们开始借助于分布式并行编程来提高程序性能 •分布式程序运行在大规模计算机集群上,可以并行执行大规模数据处 理任务,从而获得海量的计算能力 •谷歌公司最先提出了分布式并行编程模型MapReduce,Hadoop MapReduce是它的开源实现,后者比前者使用门槛低很多
》7.11分布式并行编程 问题:在 MapReduce出现之前,已经有像MP这样非常成熟的并行计算框架 了,那么为什么 Google还需要 MapReduce? Map Reduce相较于传统的并行 计算框架有什么优势? 传统并行计算框架 Map Reduce 集群架构/容错性共享式(共享内存/共享存储),容非共享式,容错性好 错性差 硬件/价格/扩展性刀片服务器、高速网、SAN,普通PC机,便宜,扩展 价格贵,扩展性差 性好 编程/学习难度What-hoW,难 What,简单 适用场景 实时、细粒度计算、计算密集型批处理、非实时、数据密 集型 《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 7.1.1分布式并行编程 问题:在MapReduce出现之前,已经有像MPI这样非常成熟的并行计算框架 了,那么为什么Google还需要MapReduce?MapReduce相较于传统的并行 计算框架有什么优势? 传统并行计算框架 MapReduce 集群架构/容错性 共享式(共享内存/共享存储),容 错性差 非共享式,容错性好 硬件/价格/扩展性 刀片服务器、高速网、SAN, 价格贵,扩展性差 普通PC机,便宜,扩展 性好 编程/学习难度 what-how,难 what,简单 适用场景 实时、细粒度计算、计算密集型 批处理、非实时、数据密 集型
7.12 MapReduce模型简介 .MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽 象到了两个函数:Map和 Reduce 编程容易,不需要掌握分布式并行编程细节,也可以很容易把自己的 程序运行在分布式系统上,完成海量数据的计算 MapReduce采用“分而治之”策略,一个存储在分布式文件系统中的 大规模数据集,会被切分成许多独立的分片(spit),这些分片可以被 多个Map任务并行处理 . MapReduce设计的一个理念航是“计算向数据靠拢”,而不是“数据 向计算靠拢”,因为,移动数据需要大量的网络传输开销 Map Reduce框架采用了 Master/Slave架构,包括一个 Master和若干个 Slave Mastel上运行 Job tracker,Save上运行 Task Tracker Hadoop框架是用Java实现的,但是, MapReduce应用程序则不一定 要用Java来写 《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 7.1.2MapReduce模型简介 •MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽 象到了两个函数:Map和Reduce •编程容易,不需要掌握分布式并行编程细节,也可以很容易把自己的 程序运行在分布式系统上,完成海量数据的计算 •MapReduce采用“分而治之”策略,一个存储在分布式文件系统中的 大规模数据集,会被切分成许多独立的分片(split),这些分片可以被 多个Map任务并行处理 •MapReduce设计的一个理念就是“计算向数据靠拢”,而不是“数据 向计算靠拢”,因为,移动数据需要大量的网络传输开销 •MapReduce框架采用了Master/Slave架构,包括一个Master和若干个Slave。 Master上运行JobTracker,Slave上运行TaskTracker •Hadoop框架是用Java实现的,但是,MapReduce应用程序则不一定 要用Java来写