相关疑难解决方法(0)

Spark - Container超出了物理内存限制

我有一个由两个工作节点组成的集群.Worker_Node_1 - 64GB RAM Worker_Node_2 - 32GB RAM

背景摘要: 我正在尝试在纱线簇上执行spark-submit以在Graph上运行Pregel来计算从一个源顶点到所有其他顶点的最短路径距离,并在控制台上打印这些值.实验:

  1. 对于具有15个顶点的小图,执行完成应用程序最终状态:SUCCEEDED
  2. 我的代码完美地工作并打印单个顶点作为源顶点的241个顶点图的最短距离,但是存在问题.

问题: 当我深入了解日志文件时,任务在4分钟和26秒内成功完成,但仍然在终端上它继续显示应用程序状态为运行,大约12分钟后任务执行终止说 -

Application application_1447669815913_0002 failed 2 times due to AM Container for appattempt_1447669815913_0002_000002 exited with exitCode: -104 For more detailed output, check application tracking page:http://myserver.com:8088/proxy/application_1447669815913_0002/
Then, click on links to logs of each attempt. 
Diagnostics: Container [pid=47384,containerID=container_1447669815913_0002_02_000001] is running beyond physical memory limits. Current usage: 17.9 GB of 17.5 GB physical memory used; 18.7 GB of 36.8 GB virtual memory used. Killing container. …
Run Code Online (Sandbox Code Playgroud)

hadoop apache-spark spark-graphx

12
推荐指数
1
解决办法
1万
查看次数

9
推荐指数
1
解决办法
4932
查看次数

Java虚拟内存大小大于请求(或必需)

我在计算集群上运行了许多工作,当它们超过所请求的资源使用时它们被杀死 - 其中一个用途是虚拟内存大小.

在我的java启动命令中,我-Xmx8000m用来表示初始堆栈大小为8GB,我还没有看到我的程序的实际内存使用量超过4GB,但是想要安全起见.

但是,当我使用top命令时,我看到我的java进程的12GB的虚拟内存大小 - 正好在所请求的虚拟内存空间的限制.我不能增加我所请求的VM大小,因为已经提交了作业,我要求他们花费的时间越长.

Java是否一致地请求比指定的更多的VM堆空间?这是一个恒定的数量,或恒定的%或随机?堆空间是否可以增长到a)请求的VM大小(8GB)或b)分配的VM大小(12GB).

编辑:在Linux上使用jre-1.7.0-openjdk

java memory

9
推荐指数
2
解决办法
6763
查看次数

Hadoop纱线容器不会分配足够的空间

我正在运行Hadoop作业,在我的yarn-site.xml文件中,我有以下配置:

    <property>
            <name>yarn.scheduler.minimum-allocation-mb</name>
            <value>2048</value>
    </property>
    <property>
            <name>yarn.scheduler.maximum-allocation-mb</name>
            <value>4096</value>
    </property>
Run Code Online (Sandbox Code Playgroud)

但是,我偶尔会遇到以下错误:

Container [pid=63375,containerID=container_1388158490598_0001_01_000003] is running beyond physical memory limits. Current usage: 2.0 GB of 2 GB physical memory used; 2.8 GB of 4.2 GB virtual memory used. Killing container.
Run Code Online (Sandbox Code Playgroud)

我发现通过增加yarn.scheduler.minimum-allocation-mb,为容器分配的物理内存会增加.但是,我并不总是希望为我的容器分配4GB,并且认为通过明确指定最大大小,我可以解决这个问题.我意识到Hadoop无法确定在映射器运行之前需要为容器分配多少内存,所以如果需要额外内存,我应该如何为容器分配更多内存?

hadoop

7
推荐指数
1
解决办法
1万
查看次数

容器运行超出物理内存。Hadoop Streaming python MR

我正在运行一个 Python 脚本,它需要一个文件 (genome.fa) 作为依赖(引用)来执行。当我运行此命令时:

 hadoop jar /usr/local/hadoop/share/hadoop/tools/lib/had                                                                                                             oop-streaming-2.5.1.jar  -file ./methratio.py -file '../Test_BSMAP/genome.fa'  -                                                                                                             mapper './methratio.py -r -g ' -input /TextLab/sravisha_test/SamFiles/test_sam                                                                                                               -output ./outfile
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

    15/01/30 10:48:38 INFO mapreduce.Job:  map 0% reduce 0%
    15/01/30 10:52:01 INFO mapreduce.Job: Task Idattempt_1422600586708_0001_m_000 009_0, Status : FAILED 
Container [pid=22533,containerID=container_1422600586708_0001_01_000017] is running beyond physical memory limits. Current usage: 1.1 GB of 1 GB physical memory used; 2.4 GB of 2.1 GB virtual memory used. Killing container.
Run Code Online (Sandbox Code Playgroud)

我正在使用 Cloudera Manager(免费版)。这些是我的配置:

yarn.app.mapreduce.am.resource.cpu-vcores = 1
ApplicationMaster Java Maximum Heap …
Run Code Online (Sandbox Code Playgroud)

hadoop mapreduce hadoop-streaming hadoop-yarn cloudera-cdh

2
推荐指数
1
解决办法
4252
查看次数