site.xml

zbsbpyhn  于 2021-06-01  发布在  Hadoop
关注(0)|答案(2)|浏览(459)

我正在服务器上运行mapreduce作业,并不断出现以下错误:

Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143
Container is running beyond physical memory limits. Current usage: 1.0 
GB of 1 GB physical memory used; 2.7 GB of 2.1 GB virtual memory used. 
Killing container.

当然,我已经阅读了所有可能的资源,我知道我需要在以下文件中设置配置:mapred-site.xml\yarn-site.xml
但我们的服务器不允许我覆盖这些属性,我希望有一种方法可以在终端或hadoop程序的配置中实现。
我正在用配置单元运行此作业,并且可以像这样覆盖这些属性:

set HADOOP_HEAPSIZE=4096;
set mapreduce.reduce.memory.mb = 4096;
set mapreduce.map.memory.mb = 4096;
set tez.am.resource.memory.mb=4096;
set yarn.app.mapreduce.am.resource.mb=4096;

但是,当我编写map reduce程序而不是hive查询时,如何更改这些?
例如,如何在shell中导出mapreduce.reduce.memory.mb?

t9aqgxwy

t9aqgxwy1#

我在mapreduce脚本中将内存大小设置为:

conf.set("mapreduce.map.memory.mb", "4096")
conf.set("mapreduce.reduce.memory.mb", "8192")
conf.set("mapred.child.java.opts", "-Xmx512m")
conf.set("tez.am.resource.memory.mb", "4096")
conf.set("yarn.app.mapreduce.am.resource.mb", "4096")

小心分配给减速机的数字。我的mapper内存和reducer内存有相同的容量,我得到了一些错误。不应该是一样的!

zwghvu4y

zwghvu4y2#

您可能需要这样指定,以便为每个应用程序/作业添加配置参数集

export HADOOP_HEAPSIZE=4096
hadoop jar YOUR_JAR.jar ClassName -Dmapreduce.reduce.memory.mb=4096 -Dmapreduce.map.memory.mb=4096 -Dyarn.app.mapreduce.am.resource.mb=4096 /input /output

注意:用jar替换\u jar.jar,用驱动程序类名替换classname

相关问题