hadoop - Hadoop YARN 中的 Map 和 Reduce 任务内存设置

标签 hadoop mapreduce hadoop-yarn

在 YARN 上的 MapReduce 应用程序中,Reduce 任务的最大内存是否需要大于 Map 任务?就像下面...

mapreduce.map.memory.mb = 7
mapreduce.reduce.memory.mb = 14
mapreduce.map.java.opts = 0.8 * 7 = 5,6
mapreduce.reduce.java.opts = 0.8 * 2 * 7 = 11,2

最佳答案

没有硬性规定,reduce任务内存应该大于map任务内存。

默认情况下,mapreduce.map.memory.mbmapreduce.reduce.memory.mb 都设置为 1,024 MB。这些值有上下限,由 yarn.scheduler.minimum-allocation-mb(默认值为 1024 MB)和 yarn.scheduler.maximum-allocation- mb(默认值为 8,192 MB)。

但是,通常建议 reducer 内存设置高于 mapper 内存设置。原因可能是,reducer 的数量少于映射器的数量,并且 reducer 聚合了来自“n”个映射器的记录。此外,您可以通过调整 reducer 的内存配置参数来优化洗牌和排序阶段,例如:mapreduce.reduce.shuffle.input.buffer.percent(用于存储映射器输出的堆的百分比。)。

Cloudera 建议将任务内存设置减少到 map task 内存的两倍:http://www.cloudera.com/content/www/en-us/documentation/enterprise/latest/topics/cdh_ig_yarn_tuning.html

您还可以在此处检查各种类型的 AWS 集群的这些设置:http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/TaskConfiguration_H2.html .您可以观察到 mapreduce.reduce.memory.mb 始终大于或等于 mapreduce.map.memory.mb

关于hadoop - Hadoop YARN 中的 Map 和 Reduce 任务内存设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34571567/

相关文章:

hadoop - 使用 spark-ec2 更改 hadoop 版本

hadoop - 从袋子里取出一个元组

Hadoop MapReduce : Two Keys in one line, 但是怎么办?

hadoop - 如何为 ResourceManager 设置 DEBUG 日志级别?

hadoop - 无法启动Hive服务

hadoop - 没有管理员权限的用户可以管理配置单元中的对象访问权限吗?

apache-spark - 如何使用 APPLICATION ID 提交 YARN 作业

hadoop - YARN vcore中的virtual core是什么意思?

amazon-web-services - 禁止(服务 : Amazon S3; Status Code: 403; Error Code: 403 Forbidden (Hadoop + S3)

mongodb - 使用 map/reduce 映射集合中的属性