hadoop - 在没有 mapred-site.xml 的情况下设置 hadoop mapreduce 大小

标签 hadoop memory containers

我在服务器上运行 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.

当然我已经阅读了所有可能的资源并且我知道我需要在这些文件中设置配置:ma​​pred-site.xml\\yarn-site.xml

但我们的服务器不允许我覆盖这些属性,我想要一种在终端或我的 hadoop 程序配置中执行此操作的方法。

我用 hive 运行这个作业,我能够像这样覆盖这些属性:

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?

最佳答案

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

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

注意:将 YOUR_JAR.jar 替换为您的 Jar 并将 ClassName 替换为您的驱动程序类名

关于hadoop - 在没有 mapred-site.xml 的情况下设置 hadoop mapreduce 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53368411/

相关文章:

ipad - 处理 iPad 设备上的低内存启动情况

android - 位图.recycle() - "IllegalArgumentException: Cannot draw recycled bitmaps"

c++ - 为什么删除不支持反向迭代器?

hadoop - 配置单元:存储桶表完整性检查

java - Hbase java.lang.NoClassDefFoundError:org/apache/hadoop/hbase/MasterNotRunningException

java - Hbase客户端连接不上本地hbase服务器

c - 堆有多大就太大了

hadoop - 使用sqoop从多个数据库导入数据

c++ - 不同功能的容器?

java - Java运行时需要判断对象的类型。设计不好?