cloudra中 mapreduce.map.memory.mb 设置诡异(推荐设置问题)

本文探讨了在CloudRA平台中,生产环境与测试环境对于MapReduce任务内存配置的不同需求。在生产环境中,由于主要处理日志解析,1GB的默认内存配置已足够;而在测试环境下,进行TPCx-BB基准测试时,因更复杂的数据处理需求,将内存配置提升至10GB以避免运行错误。文章深入分析了不同场景下内存需求变化的原因。

诡异问题

生产环境 mr 运行任务 map端和reduce 的运行内存都设置的为0 (此为cloudra 的默认配置)
在这里插入图片描述

为作业的每个 Map 任务分配的物理内存量(MiB)。对于早于 CDH 5.5 的版本,如果未指定内存量,则默认设置为 1024。对于 CDH 5.5 及更高版本,不支持小于 128 的值,但如果将其指定为 0,则可以通过 Map 任务的最大堆大小以及堆与容器的大小比值推断要请求的物理内存量。如果未指定 Map 任务的最大堆大小,则要请求的物理内存量默认设置为 1024。

根据提示 他会参考 最大堆的 参数(也为0) 所有更加配置得出 其map 端和reduce 端 都取默认值 1G

但是同样的配置 在测试环境报错 143 (既运行内存不够的情况)

修改配置如下 数据成功跑出
在这里插入图片描述

问题推测原因: 可能是线上运行的主要是解析日志需求 1G 已经足够,但是测试环境因运行TPCx-BB 基准测试时所需的mr 程序需要更大的运行内存 所以改成10G

问题注意此配置

在 Hadoop 的 MapReduce 配置中,设置 Map 任务的内存大小涉及到两个配置参数:`mapred.map.memory.mb` 和 `mapreduce.map.memory.mb`。这两个参数在功能上是等效的,但它们属于不同的配置命名规范,分别适用于不同的版本或上下文环境。 ### 参数的命名规范 Hadoop 从较早版本开始使用 `mapred` 前缀,例如 `mapred.map.memory.mb`。随着 Hadoop 的发展,特别是在 YARN 引入后,Hadoop 采用了新的 `mapreduce` 前缀来统一命名 MapReduce 相关的参数,例如 `mapreduce.map.memory.mb`。这种命名规范的变化主要是为了与 YARN 的资源管理模型保持一致,并且更加清晰地表达参数的用途。 - `mapred.map.memory.mb` 是旧的配置参数,用于指定 Map 任务的内存大小,通常在基于 MapReduce 1.x 的版本中使用。 - `mapreduce.map.memory.mb` 是新的配置参数,用于指定 Map 任务的内存大小,通常在基于 YARN 的 MapReduce 2.x 及以上版本中使用。 ### 内存配置的作用 这两个参数用于指定 Map 任务在运行时可以使用的最大内存量。这个通常以 MB 为单位进行配置,并且需要根据集群的资源情况和任务的需求进行合理设置。如果任务使用的内存超过这个,YARN 的资源管理器可能会终止该任务以防止资源耗尽。 ### 参数的优先级 在某些情况下,如果同时配置了 `mapred.map.memory.mb` 和 `mapreduce.map.memory.mb`,则 `mapreduce.map.memory.mb` 的优先级更高,因为它是为 YARN 环境设计的更现代的参数。 ### 配置建议 在实际配置中,建议使用 `mapreduce.map.memory.mb`,因为它与 YARN 的资源管理机制更加兼容,并且是当前和未来版本中推荐使用的参数。如果使用的是较旧的 Hadoop 版本,可能需要使用 `mapred.map.memory.mb`。 ### 示例配置 在 `mapred-site.xml` 或通过程序代码中设置参数时,可以按照以下方式进行配置: ```xml <property> <name>mapreduce.map.memory.mb</name> <value>2048</value> </property> ``` 或者通过 Java 代码设置: ```java job.getConfiguration().setInt("mapreduce.map.memory.mb", 2048); ``` ### 总结 - `mapred.map.memory.mb` 和 `mapreduce.map.memory.mb` 都用于设置 Map 任务的内存大小。 - `mapred.map.memory.mb` 适用于 MapReduce 1.x 版本。 - `mapreduce.map.memory.mb` 适用于 YARN 环境下的 MapReduce 2.x 及以上版本。 - 在 YARN 环境中,建议使用 `mapreduce.map.memory.mb`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值