hadoop - Hadoop 2 中 3 个内存参数之间的区别?

标签 hadoop mapreduce hadoop-yarn

我正在使用 Hadoop 2.0.5 (Alpha) 运行相对较大的作业,我遇到了这些错误:

Container [pid=15023,containerID=container_1378641992707_0002_01_000029] is running beyond virtual memory limits. Current usage: 492.4 MB of 1 GB physical memory used; 3.3 GB of 2.1 GB virtual memory used. Killing container.

然后我了解了这两个参数:

yarn.nodemanager.vmem-pmem-ratio 属性,默认设置为 2.1。

yarn.app.mapreduce.am.command-opts 默认设置为 -Xmx1024mb (=1GB)。

这解释了上面标记的限制。

将这些参数设置为更高的值确实有所帮助,但后来我发现了这个参数: yarn.app.mapreduce.am.resource.mb 默认设置为 1536。

而且我无法从 Hadoop 的默认 XML 中给出的描述中完全分辨出这 3 个之间的区别,也无法以优化的方式正确设置它们。

一个解释或一个很好的引用将不胜感激

最佳答案

@twid 的回答是模棱两可的。根据官方文档here :

yarn.app.mapreduce.am.resource.mb 指定

"The amount of memory the MR AppMaster needs."

换句话说,它指定了用于运行application master的容器需要多少内存,这与用于运行mappers/reducers的容器无关。

关于hadoop - Hadoop 2 中 3 个内存参数之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18692631/

相关文章:

hadoop - 如何在 mapper 或 reducer 中运行外部程序,将 HDFS 文件作为输入并将输出文件存储在 HDFS 中?

hadoop - chmod : cannot access ‘/app/hadoop/tmp/mapred/staging/hduser896097807/. 分期/job_local89609780chmod:

hadoop - 限制Sqoop中的并发映射器数量

scala - Spark 在 hdfs 上写入 Parquet

java - 使用org.apache.hadoop DistributedFileSystem时,线程 “main” java.lang.NullPointerException中的异常

hadoop - MapReduce 堆排序

hadoop - 如何将用户添加到Hadoop集群中的特定队列

java - Spring Boot YARN如何部署到Hadoop

apache-spark - 在 Yarn 上运行 Spark 直线

hadoop - 如何在Hadoop中为多个作业分配特定数量的映射器?