大数据讲课笔记5.4 MapReduce运行模式

Posted howard2005

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据讲课笔记5.4 MapReduce运行模式相关的知识,希望对你有一定的参考价值。

文章目录

零、学习目标

  1. 了解MapReduce运行模式
  2. 理解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运行模式的主要内容,如果未能解决你的问题,请参考以下文章

大数据讲课笔记5.1 初探MapReduce

大数据讲课笔记5.2 MapReduce工作原理

大数据讲课笔记5.3 MapReduce编程组件

大数据讲课笔记2.3 初探Hadoop世界

大数据讲课笔记5.6 MR案例—数据去重

大数据讲课笔记5.7 MR案例—TopN