第4章 Mapreduce 《大数据技术基础》
《大数据技术基础》 第4章 MapReduce
课程提要 口分布式并行编程:编程方式的变革 口 Mapreduce模型概述 口Map和 Reduce函数 口 Mapreduce工作流程 口并行计算的实现 口实例分析: Word count 口新 Mapreduce框架Yarn 《大数据技术基础》
《大数据技术基础》 课程提要 分布式并行编程:编程方式的变革 MapReduce模型概述 Map和Reduce函数 MapReduce工作流程 并行计算的实现 实例分析:WordCount 新MapReduce框架Yarn
课程提要 口分布式并行编程:编程方式的变革 口 Mapreduce模型概述 口Map和 Reduce函数 口 Mapreduce工作流程 口并行计算的实现 口实例分析: Word Count 《大数据技术基础》
《大数据技术基础》 课程提要 分布式并行编程:编程方式的变革 MapReduce模型概述 Map和Reduce函数 MapReduce工作流程 并行计算的实现 实例分析:WordCount
分布式并行编程:编程方式的变革 根据摩尔定律,约每隔18个月,CPU性能会提高一倍。在摩尔定律的 作用下,软件不用做任何改变,就可以享受性能的提升。 然而,由于晶体管电路已经逐渐接近其物理上的性能极限,摩尔定律 在2005年左右开始失效了,人类再也不能期待单个CPU的速度每 隔18个月就翻一倍,为我们提供越来越快的计算性能 · Intel、AMD、IBM等芯片厂商开始从多核这个角度来挖掘CPU的性能潜 力,多核时代以及互联网时代的到来,将使软件编程方式发生重大变 革,基于多核的多线程并发编程以及基于大规模计算机集群的分布式 并行编程是将来软件性能提升的主要途径 《大数据技术基础》
《大数据技术基础》 分布式并行编程:编程方式的变革 • 根据摩尔定律,约每隔18个月,CPU性能会提高一倍。在摩尔定律的 作用下,软件不用做任何改变,就可以享受性能的提升。 • 然而,由于晶体管电路已经逐渐接近其物理上的性能极限,摩尔定律 在 2005 年左右开始失效了,人类再也不能期待单个 CPU 的速度每 隔 18 个月就翻一倍,为我们提供越来越快的计算性能。 • Intel、AMD、IBM等芯片厂商开始从多核这个角度来挖掘CPU的性能潜 力,多核时代以及互联网时代的到来,将使软件编程方式发生重大变 革,基于多核的多线程并发编程以及基于大规模计算机集群的分布式 并行编程是将来软件性能提升的主要途径
分布式并行编程:编程方式的变革 基于集群的分布式并行编程,能够让软件与数据同时运行在连成一个 网络的许多台计算机上,可以很容易地通过增加计算机来扩充新的计 算结点,并由此获得不可思议的海量计算能力,但分布式并行开发与 传统的顺序执行开发逻辑大不相同。 ·开源的 Hadoop的出现,则极大地降低了分布式并行开发的门槛。基 于 Hadoop编程非常简单,无需仼何并行开发经验,也可以轻松地开 发出分布式的并行程序,并让其令人难以置信地同时运行在数百台机 器上,然后在短时间内完成海量数据的计算 随着“云计算的普及,仼何人都可以轻松获得这样的海量计算能力 。例如,现在 Amazon公司的云计算平台 Amazon eo2已经提供了这 种按需计算的租用服务。 《大数据技术基础》
《大数据技术基础》 分布式并行编程:编程方式的变革 • 基于集群的分布式并行编程,能够让软件与数据同时运行在连成一个 网络的许多台计算机上,可以很容易地通过增加计算机来扩充新的计 算结点,并由此获得不可思议的海量计算能力,但分布式并行开发与 传统的顺序执行开发逻辑大不相同。 • 开源的 Hadoop的出现,则极大地降低了分布式并行开发的门槛。基 于 Hadoop编程非常简单,无需任何并行开发经验,也可以轻松地开 发出分布式的并行程序,并让其令人难以置信地同时运行在数百台机 器上,然后在短时间内完成海量数据的计算。 • 随着“云计算”的普及,任何人都可以轻松获得这样的海量计算能力 。例如,现在 Amazon 公司的云计算平台 Amazon EC2 已经提供了这 种按需计算的租用服务
课程提要 口分布式并行编程 口 Mapreduce模型概述 口Map和 Reduce函数 口 Mapreduce工作流程 口并行计算的实现 口实例分析: Word Count 口新 Mapreduce框架Yarn 《大数据技术基础》
《大数据技术基础》 课程提要 分布式并行编程 MapReduce模型概述 Map和Reduce函数 MapReduce工作流程 并行计算的实现 实例分析:WordCount 新MapReduce框架Yarn
课程提要 口分布式并行编程 口 Mapreduce模型概述 口Map和 Reduce函数 口 Mapreduce工作流程 口并行计算的实现 口实例分析: Word Count 《大数据技术基础》
《大数据技术基础》 课程提要 分布式并行编程 MapReduce模型概述 Map和Reduce函数 MapReduce工作流程 并行计算的实现 实例分析:WordCount
Mapreduce模型概述 Mapreduce是 Google公司的核心计算模型,它将复杂的运行于大规模 集群上的并行计算过程高度地抽象到两个函数:Map和 Reduce 适合用 Mapreduce来处理的数据集(或任务),需要满足一个基本要求 待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都 可以完全并行地进行处理 ·概念“Map(映射)”和“ Reduce(化简)”,以及它们的主要思想 ,都是从函数式编程语言里借来的,同时包含了从矢量编程语言里借 来的特性。 Mapreduce极大地方便了编程人员在不会分布式并行编程 的情况下,将自己的程序运行在分布式系统上。 《大数据技术基础》
《大数据技术基础》 MapReduce模型概述 • MapReduce是Google公司的核心计算模型,它将复杂的运行于大规模 集群上的并行计算过程高度地抽象到两个函数:Map和Reduce。 • 适合用MapReduce来处理的数据集(或任务),需要满足一个基本要求: 待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都 可以完全并行地进行处理。 • 概念“Map(映射)”和“Reduce(化简)”,以及它们的主要思想 ,都是从函数式编程语言里借来的,同时包含了从矢量编程语言里借 来的特性。MapReduce极大地方便了编程人员在不会分布式并行编程 的情况下,将自己的程序运行在分布式系统上
Mapreduce模型概述 个Map- Reduce作业(job)通常会把输入的数据集切分为若干独立 的数据块,由map任务(task)以完全并行的方式处理它们。框架会 对map的输出先进行排序,然后把结果输入给 reduce任务。通常作业 的输入和输出都会被存储在文件系统中。整个框架负责任务的调度和 监控,以及重新执行已经失败的任务。 Map-Reduce框架和分布式文件系统是运行在一组相同的节点上的,即 计算节点和存储节点通常在一起。这种配置允许框架在那些已经存好 数据的节点上高效地调度任务,这可以使整个集群的网络带宽被非常 高效地利用 Map -Reduce框架由单独一个 master Job Tracker,和每个集群节点一个 slave TaskTracker共同组成。这个 master负责调度构成一个作业的 所有任务,这些任务分布在不同的 slave上, master监控它们的执行 ,重新执行已经失败的任务。而 slave仅负责执行由 master指派的任 务 《大数据技术基础》
《大数据技术基础》 MapReduce模型概述 • 一个Map-Reduce作业(job)通常会把输入的数据集切分为若干独立 的数据块,由map任务(task)以完全并行的方式处理它们。框架会 对map的输出先进行排序,然后把结果输入给reduce任务。通常作业 的输入和输出都会被存储在文件系统中。整个框架负责任务的调度和 监控,以及重新执行已经失败的任务。 • Map-Reduce框架和分布式文件系统是运行在一组相同的节点上的,即 计算节点和存储节点通常在一起。这种配置允许框架在那些已经存好 数据的节点上高效地调度任务,这可以使整个集群的网络带宽被非常 高效地利用。 • Map-Reduce框架由单独一个master JobTracker和每个集群节点一个 slave TaskTracker共同组成。这个master负责调度构成一个作业的 所有任务,这些任务分布在不同的slave上,master监控它们的执行 ,重新执行已经失败的任务。而slave仅负责执行由master指派的任 务
mapreduce模型概述 应用程序至少应该指明输入输出的位置(路径),并通过实现合适的 接口或抽象类提供map和 Reduce函数。再加上其他作业的参数,就构 成了作业配置( job configuration)。然后,由 Hadoop的job- client提 交作业(jar包/可执行程序等)和配置信息给 JobTracker,后者负责 分发这些软件和配置信息给 slave、调度任务且监控它们的执行,同 时提供状态和诊断信息给 job-client 虽然 Hadoop框架是用Java实现的,但 Map-Reduce应用程序则不一 定要用Java来写。 《大数据技术基础》
《大数据技术基础》 MapReduce模型概述 • 应用程序至少应该指明输入/输出的位置(路径),并通过实现合适的 接口或抽象类提供map和reduce函数。再加上其他作业的参数,就构 成了作业配置(job configuration)。然后,由Hadoop的job-client提 交作业(jar包/可执行程序等)和配置信息给JobTracker,后者负责 分发这些软件和配置信息给slave、调度任务且监控它们的执行,同 时提供状态和诊断信息给job-client。 • 虽然Hadoop框架是用Java实现的,但Map-Reduce应用程序则不一 定要用Java来写