大数据讲课笔记5.4mapreduce运行模式(代码片段)

howard2005 howard2005     2022-12-02     304

关键词:

文章目录

零、学习目标

  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.5mapreduce经典案例——倒排索引(代码片段)

...现倒排索引一、导入新课通过上节课的学习,我们对MapReduce运行模 查看详情

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

...(三)Hadoop的生态体系1、HDFS分布式文件系统2、MapReduce分 查看详情

大数据讲课笔记3.2hadoop部署模式(代码片段)

...,所有程序都在单个JVM上执行,调试Hadoop集群的MapReduce程序也非常方便。一般情况下,该模式常用于学习或开发阶段进行调试程序。2、伪分布式模式在伪分布式模 查看详情

大数据讲课笔记3.2hadoop部署模式(代码片段)

...,所有程序都在单个JVM上执行,调试Hadoop集群的MapReduce程序也非常方便。一般情况下,该模式常用于学习或开发阶段进行调试程序。2、伪分布式模式在伪分布式模 查看详情

2022年大数据讲课笔记

一、讲课笔记项目一、Linux基础大数据讲课笔记1.1安装配置CentOS[在OpenStack私有云上安装配置虚拟机]大数据讲课笔记1.2Linux用户操作大数据讲课笔记1.3Linux目录操作大数据讲课笔记1.4进程管理大数据讲课笔记1.5使用Vim编辑器大数据... 查看详情

2022年大数据基础讲课笔记

一、讲课笔记项目一、Linux基础大数据讲课笔记1.1安装配置CentOS[在OpenStack私有云上安装配置虚拟机]大数据讲课笔记1.2Linux用户操作大数据讲课笔记1.3Linux目录操作大数据讲课笔记1.4进程管理大数据讲课笔记1.5使用Vim编辑器大数据... 查看详情

2022年大数据基础讲课笔记

一、讲课笔记项目一、Linux基础大数据讲课笔记1.1安装配置CentOS[在OpenStack私有云上安装配置虚拟机]大数据讲课笔记1.2Linux用户操作大数据讲课笔记1.3Linux目录操作大数据讲课笔记1.4进程管理大数据讲课笔记1.5使用Vim编辑器大数据... 查看详情

大数据讲课笔记1.5使用vim编辑器(代码片段)

文章目录零、学习目标一、导入新课二、新课讲解(一)了解Vim编辑器(二)安装Vim编辑器(三)切换三种工作模式1、命令模式2、输入模式3、末行模式(四)命令模式中基本操作1、命令模式中操... 查看详情

大数据讲课笔记5.6mr案例—数据去重(代码片段)

...据去重一、导入新课通过上节课的学习,我们熟悉了MapReduce经典案例——倒序索引的具 查看详情

大数据讲课笔记5.7mr案例—topn(代码片段)

...N分析法一、导入新课通过上节课的学习,我们熟悉了MapReduce经典案 查看详情

大数据讲课笔记4.3hdfs的shell操作(代码片段)

...ff08;2)退出安全模式(四)案例-Shell定时采集数据到HDFS1、配置环境变量2、准备日志存放目录和待上传文件3、设置日志文件上传的路径4、实现文件上传5、执行程序展示运行结果三、归纳总结四、上机操作零、 查看详情

大数据讲课笔记4.3hdfs的shell操作(代码片段)

...ff08;2)退出安全模式(四)案例-Shell定时采集数据到HDFS1、配置环境变量2、准备日志存放目录和待上传文件3、设置日志文件上传的路径4、实现文件上传5、执行程序展示运行结果三、归纳总结四、上机操作零、 查看详情

大数据讲课笔记2.2大数据应用场景

...、学习目标一、导入新课二、新课讲解(一)大数据在医疗行业的应用1、优化医疗方案,提供最佳治疗方法2、有效预防预测疾病(二)大数据在金融行业的应用1、精准营销2、风险管控3、决策支持4、服务创... 查看详情

大数据讲课笔记6.1初识zookeeper

文章目录零、学习目标一、导入新课二、新课讲解(一)ZooKeeper概述(二)ZooKeeper特性(三)ZooKeeper集群角色1、Leader角色2、Follower角色3、Observer角色三、归纳总结四、上机操作零、学习目标理解ZooKeeper特... 查看详情

安卓讲课笔记5.4单选按钮和复选框(代码片段)

文章目录零、本讲学习目标一、导入新课二、新课讲解(一)单选按钮组1、继承关系图2、常用属性3、设置事件监听器4、注意事项5、重要方法(二)单选按钮1、继承关系图2、常用方法3、设置事件监听器4、注意... 查看详情

大数据讲课笔记2.1初探大数据(代码片段)

...目标一、导入新课二、新课讲解(一)什么是大数据(二)大数据的特征1、数据体量大2、数据类型多3、处理速度快4、价值密度低(三)研究大数据的意义(四)拥抱大数据时代1、第三次信息化浪... 查看详情

大数据讲课笔记2.1初探大数据(代码片段)

...目标一、导入新课二、新课讲解(一)什么是大数据(二)大数据的特征1、数据体量大2、数据类型多3、处理速度快4、价值密度低(三)研究大数据的意义(四)拥抱大数据时代1、第三次信息化浪... 查看详情

大数据讲课笔记4.1hdfs基本概念(代码片段)

文章目录零、学习目标一、导入新课二、新课讲解(一)HFDS的演变(二)HDFS的基本概念1、NameNode(名称节点)2、DataNode(数据节点)3、Block(数据块)4、Rack(机架)5、Metadata( 查看详情