大数据讲课笔记5.4 MapReduce运行模式
Posted howard2005
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据讲课笔记5.4 MapReduce运行模式相关的知识,希望对你有一定的参考价值。
文章目录
零、学习目标
- 了解MapReduce运行模式
- 理解MapReduce性能优化策略
一、导入新课
- 通过上节课的学习,我们对MapReduce的编程组件有了更深入的了解,这有助于我们更好的掌握MapReduce分布式计算框架去处理数据。当数据量很大时,针对在部署方法上存在MapReduce程序执行效率的问题,采取基于参数优化的方法,来进行调参数从而提高MapReduce程序的执行效率。本节课将针对MapReduce的运行模式和性能优化策略进行详细讲解。
二、新课讲解
(一)MapReduce运行模式
1、本地运行模式
- 在当前的开发环境模拟MapReduce执行环境,处理的数据及输出结果在本地操作系统。
2、集群运行模式
- 把MapReduce程序打成一个Jar包,提交至Yarn集群上去运行任务。由于Yarn集群负责资源管理和任务调度,程序会被框架分发到集群中的节点上并发的执行,因此处理的数据和输出结果都在HDFS文件系统中。
- 将5.1节点的词频统计项目
MRWordCount
打成jar包,上传到YARN集群上运行任务
(二)MapReduce性能优化策略
- 使用Hadoop进行大数据运算,当数据量极其大时,那么对MapReduce性能的调优重要性不言而喻,尤其是Shuffle过程中的参数配置对作业的总执行时间影响特别大,我们可以从五个方面对MapReduce程序进行性能调优,分别是数据输入、Map阶段、Reduce阶段、Shuffle阶段和其他调优属性方面。
1、数据输入
- 在执行MapReduce任务前,将小文件进行合并,大量小文件会产生大量的map任务,增大map任务装载次数,而任务装载较耗时,从而导致MapReduce运行速度较慢。因此采用CombineTextInputFormat来作为输入,解决输入端大量的小文件场景。
2、Map阶段
- 减少溢写(spill)次数
- 减少合并(merge)次数
- 在map之后,不影响业务逻辑前提下,先进行combine处理,减少 I/O
3、Reduce阶段
- 合理设置map和reduce数
- 设置map、reduce共存
- 规避使用reduce
- 合理设置reduce端的buffer
4、Shuffle阶段
- Shuffle阶段的调优就是给Shuffle过程尽量多地提供内存空间,以防止出现内存溢出现象,可以由参数mapred.child.java.opts来设置,任务节点上的内存大小应尽量大。
5、其它调优属性
- MapReduce还有一些基本的资源属性的配置,这些配置的相关参数都位于mapred-default.xml文件中,我们可以合理配置这些属性提高MapReduce性能,例如合理设置MapTask、ReduceTask等参数。
三、归纳总结
- 回顾本节课所讲的内容,并通过提问的方式引导学生解答问题并给予指导。
四、上机操作
- 形式:单独完成
- 题目:理解MapReduce运行模式与性能优化
- 要求:观看尚硅谷大数据视频关于掌握MapReduce运行模式与性能优化这部分内容,然后写一篇学习报告。
以上是关于大数据讲课笔记5.4 MapReduce运行模式的主要内容,如果未能解决你的问题,请参考以下文章