【问题标题】:Yarn virtual memory usageYarn 虚拟内存使用情况
【发布时间】:2014-08-06 06:42:09
【问题描述】:

我正在运行一个 oozie 工作流,其中包含一个运行此脚本的 shell 操作。

java -classpath my.jar my.package.Main

shell 动作配置如下所示

<action name="run-test-script">
  <shell xmlns="uri:oozie:shell-action:0.1">
    <job-tracker>${jobTracker}</job-tracker>
    <name-node>${nameNode}</name-node>
    <exec>run.sh</exec>
    <file>${wf:conf("oozie.wf.application.path")}/run.sh</file>
  </shell>
  <ok to="end"/>
  <error to="report_failure"/>
</action>

在 Yarn(Cloudera Mgr GUI)中,我有以下设置

mapreduce.map.memory.mb=4GiB

当我运行它时,它失败了,在 Yarn 中我收到以下错误消息:

容器 [pid=8340,containerID=container_1397556756420_5519_01_000002] 运行超出虚拟内存限制。当前使用情况:已使用 327.6 MB 的 4 GB 物理内存;使用了 33.2 GB 的 8.4 GB 虚拟内存。杀死容器。转储Container-Tream-1397556756420_5519_01_000002:| - PID PPID PGRPID SESSID CMD_NAME USER_TIME(Millis)System_time(Millis)VMEM_USAGE(字节)RSSMEM_USAGE(页面)FULL_CMD_LINE | - 8467 8466 8340 8340(Java)21 2 34039132160 15889 java-classpath我的-jar.jar my.package.Main |- 8466 8340 8340 8340 (run.sh) 0 0 108654592 304 /bin/bash ./run.sh |- 8340 31401 8340 8340 (java) 396 21 1476808704 67682 /usr/lib /jvm/default-java/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Xmx825955249 -Djava.io.tmpdir=/data24/yarn/nm/usercache/thomas.larsson/应用程序缓存/ application_1397556756420_5519 / container_1397556756420_5519_01_000002 / TMP -Dlog4j.configuration = container-log4j.properties -Dyarn.app.mapreduce.container.log.dir =的/ var /数/ Hadoop的纱线/容器/ application_1397556756420_5519 / container_1397556756420_5519_01_000002 -Dyarn.app.mapreduce .container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA org.apache.hadoop.mapred.YarnChild 10.4.4.108 52668 attempt_1 397556756420_5519_m_000000_0 2 容器应请求终止。退出代码是 143

我的问题是,为什么这个任务要分配 33.2 Gb 的虚拟内存?

更新:抱歉,我忘记发布 java 类...

public class Main {
  public static void main(String[] args) throws InterruptedException {
    System.out.println("Running Main.");
    Thread.sleep(1000*60);
    System.out.println("Completed.");
  }
}

【问题讨论】:

  • 我遇到了同样的问题。你想清楚了吗?

标签: hadoop oozie hadoop-yarn


【解决方案1】:

您正在查看的地图 mb 大小无关紧要,因为您没有开始地图/减少 检查所有与内存相关的 YARN 设置,可能是您对容器的最小分配太高了

【讨论】:

  • 嗯,我有 yarn.scheduler.minimum-allocation-mb=1024 和 yarn.nodemanager.vmem-pmem-ratio=2.1 所以我看不出那是什么来源。
【解决方案2】:

它失败了,因为您必须启用 vmem 检查。而且它超过了虚拟内存限制。

当前使用情况:已使用 327.6 MB 的 4 GB 物理内存; 33.2 GB 的 8.4 GB

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 2010-10-08
    • 2011-03-27
    • 2021-09-24
    • 2012-03-12
    • 2018-11-12
    • 2013-10-21
    相关资源
    最近更新 更多