当前位置: 首页 > news >正文

Hadoop MapReduce 调优参数

文章目录

      • MapReduce 调优参数详解
      • MapReduce 调优参数一键复制

前言:

下列参数基于 hadoop v3.1.3 版本,共三台服务器,配置都为 4 核,4G 内存。

MapReduce 调优参数详解

这个参数定义了在 Reduce 阶段同时进行的拷贝操作的数量,用于从 Map 任务获取数据,增加此值可以加速 Shuffle 阶段的执行。

<property><name>mapreduce.reduce.shuffle.parallelcopies</name><value>10</value>
</property>

默认值: 5
建议配置: 10


定义了在 Reduce 阶段输入数据缓冲区的百分比,缓冲更多的数据可以减少磁盘 IO。

<property><name>mapreduce.reduce.shuffle.input.buffer.percent</name><value>0.8</value>
</property>

默认值: 0.7
建议配置: 0.8


定义了在 Reduce 阶段执行 merge 操作的阈值,决定何时将中间数据合并到较大的文件中以减少文件数目。

<property><name>mapreduce.reduce.shuffle.merge.percent</name><value>0.75</value>
</property>

默认值: 0.66
建议配置: 0.75


设置 Map 任务的 Java 堆内存大小。

<property><name>mapreduce.map.java.opts</name><value>-Xmx2048m</value>
</property>

默认值: 未指定(取决于集群的配置)。
建议配置:-Xmx2048m,将堆内存大小设置为 2G


设置 Reduce 任务的 Java 堆内存大小。

<property><name>mapreduce.reduce.java.opts</name><value>-Xmx2048m</value>
</property>

默认值: 未指定(取决于集群的配置)。
建议配置: -Xmx2048m,将堆内存大小设置为 2G


定义了每个 Map 任务使用的虚拟 CPU 核心数量。

<property><name>mapreduce.map.cpu.vcores</name><value>2</value>
</property>

默认值: 1
建议配置: 2


定义了每个 Reduce 任务使用的虚拟 CPU 核心数量。

<property><name>mapreduce.reduce.cpu.vcores</name><value>2</value>
</property>

默认值: 1
建议配置: 2


定义了 Map 任务最大的重试次数。

<property><name>mapreduce.map.maxattempts</name><value>4</value>
</property>

默认值: 4
建议配置: 4(默认值),保持默认值即可。


定义了 Reduce 任务最大的重试次数。

<property><name>mapreduce.reduce.maxattempts</name><value>4</value>
</property>

默认值: 4
建议配置: 4(默认值)。保持默认值即可。


定义了在 Reduce 阶段开始之前要完成的 Map 任务的比例。

<property><name>mapreduce.job.reduce.slowstart.completedmaps</name><value>0.2</value>
</property>

默认值: 0.05
建议配置: 0.2。由于集群只有三台机器,提高此值有助于确保在进行 Reduce 阶段之前有足够的数据可供处理。

定义了任务的最大执行时间(以毫秒为单位)。如果任务执行超过此时间,将被认为失败。

<property><name>mapreduce.task.timeout</name><value>600000</value>
</property>

默认值: 600000(10分钟)
建议配置: 600000(默认值)。可以根据任务的复杂性和数据量适当调整。

定义了在 Map 阶段进行排序操作时的内存缓冲区大小(以MB为单位)。

<property><name>mapreduce.task.io.sort.mb</name><value>200</value>
</property>

默认值: 100
建议配置: 200。适当增加这个值可以提高排序的性能,但不要超过可用内存的一半。


定义了在进行 Map 阶段排序操作时,达到多少内存使用比例时会触发溢写(spill)操作将数据写入磁盘。

<property><name>mapreduce.map.sort.spill.percent</name><value>0.85</value>
</property>

默认值: 0.8
建议配置: 0.85


对文件进行排序时一次合并的流数,这决定了打开文件句柄的数量。

<property><name>mapreduce.task.io.sort.factor</name><value>20</value>
</property>

默认值: 10
建议配置: 20

定义了每个 Map 任务使用的内存量(以MB为单位)。

<property><name>mapreduce.map.memory.mb</name><value>2048</value>
</property>

默认值: 1024
建议配置: 2048

定义了每个 Reduce 任务使用的内存量(以MB为单位)。

<property><name>mapreduce.reduce.memory.mb</name><value>2048</value>
</property>

默认值: 1024
建议配置: 2048

MapReduce 调优参数一键复制

下列配置参数基于 hadoop v3.1.3 版本,共三台服务器,配置都为 4 核,4G 内存,上方可以看相关参数的详细解释。

	<property><name>mapreduce.reduce.shuffle.parallelcopies</name><value>10</value></property><property><name>mapreduce.reduce.shuffle.input.buffer.percent</name><value>0.8</value></property><property><name>mapreduce.reduce.shuffle.merge.percent</name><value>0.75</value></property><property><name>mapreduce.map.java.opts</name><value>-Xmx2048m</value></property><property><name>mapreduce.reduce.java.opts</name><value>-Xmx2048m</value></property><property><name>mapreduce.map.cpu.vcores</name><value>2</value></property><property><name>mapreduce.reduce.cpu.vcores</name><value>2</value></property><property><name>mapreduce.map.maxattempts</name><value>4</value></property><property><name>mapreduce.reduce.maxattempts</name><value>4</value></property><property><name>mapreduce.job.reduce.slowstart.completedmaps</name><value>0.2</value></property><property><name>mapreduce.task.timeout</name><value>600000</value></property><property><name>mapreduce.task.io.sort.mb</name><value>200</value></property><property><name>mapreduce.map.sort.spill.percent</name><value>0.85</value></property><property><name>mapreduce.task.io.sort.factor</name><value>20</value></property><property><name>mapreduce.map.memory.mb</name><value>2048</value></property><property><name>mapreduce.reduce.memory.mb</name><value>2048</value></property>

相关文章:

Hadoop MapReduce 调优参数

文章目录 MapReduce 调优参数详解MapReduce 调优参数一键复制 前言&#xff1a; 下列参数基于 hadoop v3.1.3 版本&#xff0c;共三台服务器&#xff0c;配置都为 4 核&#xff0c;4G 内存。 MapReduce 调优参数详解 这个参数定义了在 Reduce 阶段同时进行的拷贝操作的数量&…...

springboot 与 Redis整合

SpringBoot 操作数据&#xff1a;Spring-data jpa jdbc mongodb redis! SpringData 也是和SpringBoot 齐名的项目&#xff01; 说明&#xff1a;在SpringBoot2.X 之后&#xff0c;原来使用的jedis被替换成了lettuce jedis&#xff1a; 采用的直连&#xff0c;多个线程操作的话&…...

如何高效地设计测试用例并评审

编写出好的测试用例是每一个测试工程师的职责&#xff0c;但在实际工作中大家写的测试用例往往需要不断地修改才能使用&#xff0c;这不仅浪费了时间&#xff0c;还容易让测试工程师产生自我否定的情绪&#xff0c;甚至在团队中产生各种矛盾。 那如何高效地设计测试用例呢&…...

基于python+Django知识图谱的医疗问答系统设计与实现

摘 要 从信息技术的发展至今&#xff0c;各色各样的技术能够满足各类人群的需求&#xff0c;能够让各种业务行业的痛点变成能够可以解决的方法&#xff0c;随着我们经济的不断提高&#xff0c;越来越多的人都该关注健康&#xff0c;那么健康饮食、健康医疗是我们生活中所追求的…...

cuda编程常见问题

cuda环境配置 参考链接 https://blog.csdn.net/weixin_43788327/article/details/125823507?spm1001.2014.3001.5506 疑难问题 在学习《GPU高性能编程CUDA实战》这本书时&#xff0c;发现书里面的代码很多变量都没定义过&#xff0c;经过搜索发现这都是书上自带的代码。 代…...

QTday3

作业1&#xff1a;通过对话框实现保存文件 void burger::on_saveBtn_clicked() {//调用函数&#xff0c;获取文件路径QString filename QFileDialog::getSaveFileName(this,"选择文件夹","./","Text File(*.txt)");if(filename.isNull()){QMes…...

docker镜像是如何导入的?

镜像导入是由image/tarexport/load.go#tarexporter.Load()完成的 以下代码参考github.com/docker/docker版本v0.0.0-20181129155816-baab736a3649 主要是注册镜像信息以及解包镜像tar流到新root 导出和保存的区别在于 导出(export): 仅导出文件结构保存(save): 保存镜像历史和元…...

四川大学874考研真题00-23

22, 2022年硕士学位研究生入学考试试题回忆版 数据结构 1&#xff0e;一个时间复杂度为n2 的算法运行&#xff0c;m1算n个问题用时1秒&#xff0c;m2处理器是m1效率的64倍&#xff0c;则m2每秒能计算&#xff08;&#xff09;个问题。 A. 64n B. 8n …...

openGauss学习笔记-58 openGauss 高级特性-资源池化

文章目录 openGauss学习笔记-58 openGauss 高级特性-资源池化58.1 特性简介58.2 架构介绍58.3 功能特点58.4 适用场景与限制58.5 手动安装示例58.6 OCK RDMA使用示例58.7 OCK SCRLock使用示例 openGauss学习笔记-58 openGauss 高级特性-资源池化 58.1 特性简介 资源池化特性主…...

centos升级cmake之相关问题解决

1. yum安装(仓库默认版本) # 查看可安装版本 yum --showduplicates list xxxx# 安装指定版本 yum install xxxx-1.23.1 2. 安装高版本cmake 2.1 一开始下载的是cmake-xxx.zip&#xff0c;在 ./bootstrap 一直会报错“missing terminating " character”&#xff0c;后来…...

vcs仿真教程(查看断言)

VCS是在linux下面用来进行仿真看波形的工具&#xff0c;类似于windows下面的modelsim以及questasim等工具&#xff0c;以及quartus、vivado仿真的操作。 1.vcs的基本指令 vcs的常见指令后缀 sim常见指令 2.使用vcs的实例 &#xff08;1&#xff09;新建文件夹&#xff1a; …...

2023开学礼新疆石河子大学图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》许少辉新财经理工

2023开学礼新疆石河子大学图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》许少辉新财经理工...

javaee spring aop 切入点表达式

1、切入点表达式&#xff1a;对指定的方法进行拦截&#xff0c;并且生成代理表达式。 表达式语法&#xff1a;execution([修饰符] 返回值类型 包名.类名.方法名(参数))execution( public void com.test.service.impl.UsersService.add() )2、表达式不同写法 1.匹配指定方法 …...

js 获得元素的offsetLeft

要获得元素相对于其offsetParent元素左侧边缘的距离&#xff08;即offsetLeft&#xff09;&#xff0c;可以使用如下代码&#xff1a; var el document.getElementById(your-element-id); var offsetLeft el.offsetLeft;其中&#xff0c;el为要获取offsetLeft的元素对象&…...

【Spring面试题】IOC控制反转和DI依赖注入(详解)

IOC Inversion of Control 控制反转&#xff0c;是一种面向对象的思想。 控制反转就是把创建和管理 bean 的过程转移给了第三方。而这个第三方&#xff0c;就是 Spring IoC Container&#xff0c;对于 IoC 来说&#xff0c;最重要的就是容器。 通俗点讲&#xff0c;因为项目…...

LeetCode 2511. 最多可以摧毁的敌人城堡数目

【LetMeFly】2511.最多可以摧毁的敌人城堡数目 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-enemy-forts-that-can-be-captured/ 给你一个长度为 n &#xff0c;下标从 0 开始的整数数组 forts &#xff0c;表示一些城堡。forts[i] 可以是 -1 &#xff0c…...

bazel远程缓存(Remote Cache)

原理 您可以将服务器设置为构建输出&#xff08;即这些操作输出&#xff09;的远程缓存。这些输出由输出文件名列表及其内容的哈希值组成。借助远程缓存&#xff0c;您可以重复使用其他用户的 build 中的构建输出&#xff0c;而不是在本地构建每个新输出。 增量构建极大的提升…...

算法竞赛入门经典习题2-6 排列(permutation)

排列&#xff08;permutation&#xff09;——算法竞赛入门经典_还记得樱花正开~的博客-CSDN博客 上面的代码很厉害&#xff0c;学习...我的代码水平就比较差了... #include <cstdio> #include <set>int main(){for(int i 123; i < 329; i){std::set<int&…...

队列的链表实现 题目(难度1/10)

C数据结构与算法 目录 队列介绍 队列这种容器&#xff0c;就像大家排队上公交车一样。 第一个来到的人排在最前面&#xff1b; 最后来的排在最后面&#xff1b; 第一个先上车&#xff08;离开队列&#xff09;&#xff1b; 队列的接口 队列是有如下接口的容器&#xff1…...

SpringMVC常用的三种获取请求参数的方式

在Spring MVC中&#xff0c;可以使用多种方式来获取请求参数。下面我将介绍常用的几种方式&#xff0c;并提供相关的示例代码。 1. 使用RequestParam注解获取请求参数 RequestParam注解用于从请求中获取指定名称的参数值&#xff0c;并将其绑定到方法参数上。如果请求中没有找…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...