2 hadoop mapreduce hadoop-streaming hadoop-yarn cloudera-cdh
我正在运行一个 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 Size = 825955249 B
mapreduce.map.memory.mb = 1GB
mapreduce.reduce.memory.mb = 1 GB
mapreduce.map.java.opts = -Djava.net.preferIPv4Stack=true
mapreduce.map.java.opts.max.heap = 825955249 B
yarn.app.mapreduce.am.resource.mb = 1GB
Java Heap Size of JobHistory Server in Bytes = 397 MB
Run Code Online (Sandbox Code Playgroud)
有人能告诉我为什么我会收到这个错误吗??
小智 5
我认为您的 python 脚本在读取大型输入文件(线索:genome.fa)期间消耗了大量内存。
这是我的原因(参考:http : //courses.coreservlets.com/Course-Materials/pdf/hadoop/04-MapRed-6-JobExecutionOnYarn.pdf,容器运行超出内存限制,http://hortonworks.com/博客/如何规划和配置纱线-hdp-2-0/ )
容器的内存使用量 = JVM 堆大小 + JVM Perm Gen + 本机库 + 生成的进程使用的内存
最后一个变量“生成的进程使用的内存”(Python 代码)可能是罪魁祸首。
尝试增加这两个参数的内存大小:mapreduce.map.java.opts
和mapreduce.reduce.java.opts。
| 归档时间: |
|
| 查看次数: |
4252 次 |
| 最近记录: |