2016-07-01 5 views
0

Ich erhalte am Ende der Befehlsausführung eine Antwort von Done, aber auch eine Antwort: There are 4 pending tasks possibly being run by other workers.Virtueller Speicherfehler auf dem Hadoop-Server

Immer wenn die Ausführung MapReduce erreicht, wird es auf 100% abgebildet, dann auf 4% reduziert, dann bricht es ab und beschwert sich, dass der Container über die Grenzen des virtuellen Speichers hinaus läuft.
Ich habe versucht, die Dateien "mapred-site.xml" und "yarn-site.xml" zu bearbeiten, um der Jobverarbeitung bestimmten Speicher zuzuweisen, und führte den Job erneut aus, aber wenn es MapReduce erreicht, erhalte ich noch diesen Containerfehler:

exitCode: 143 due to: Container [pid=30255,containerID=container_1467369594931_0001_02_000001] is running beyond virtual memory limits. Current usage: 205.4 MB of 1 GB physical memory used; 3.0 GB of 2.1 GB virtual memory used. Killing container.

Und auch ein HadoopJobError:

HadoopJobError: ('Streaming job failed with exit code 1. Also, no tracking url found.', 'packageJobJar: [/var/lib/analytics-tasks/analyticstack/venv/local/lib/python2.7/site-packages/luigi/mrrunner.py, /tmp/tmpdE5zuW/packages.tar, /tmp/tmpdE5zuW/job-instance.pickle, /tmp/hadoop-hadoop/hadoop-unjar4084911391400860326/] [] /tmp/streamjob4527588275110250460.jar tmpDir=null\n', '16/07/01 05:40:55

Bitte hat jemand eine mögliche Lösung/Ansatz, um dies zu lösen.

Antwort

0

Das ist eine falsch konfigurierte mapred-site.xml. Die verfügbaren Ressourcen für die ResourceManager sind in yarn-site.xml angegeben. Ausgehend von diesen verfügbaren Ressourcen sollten Sie die verfügbaren Ressourcen pro Mapper/Reducer-Container in der mapred-site.xml zuordnen. Ich rate - innerhalb der mapred-site.xml haben Sie die mapreduce.reduce.memory.mb weniger als yarn.scheduler.minimum.allocation.mb Wert in yarn-site.xml gegeben. Überprüfen Sie auch die virtuellen und physikalischen Speicherverhältnisse (yarn.nodemanager.vmem-pmem-ratio) in yarn-site.xml. Beachten Sie, dass die Größe des Mappers/Reducer-Heapspeichers auf weniger als den Speicher beschränkt sein sollte, den Sie ihren Containern zuweisen.