Boosting spark.yarn.executor.memoryOverhead

Ich versuche, einen (py) Spark-Job für EMR auszuführen, der eine große Datenmenge verarbeitet. Derzeit schlägt mein Job mit der folgenden Fehlermeldung fehl:

Reason: Container killed by YARN for exceeding memory limits.
5.5 GB of 5.5 GB physical memory used.
Consider boosting spark.yarn.executor.memoryOverhead.

So google ich habe wie das geht und festgestellt, dass ich das @ weitergeben sospark.yarn.executor.memoryOverhead Parameter mit dem --conf Flag. Ich mache es so:

aws emr add-steps\
--cluster-id %s\
--profile EMR\
--region us-west-2\
--steps Name=Spark,Jar=command-runner.jar,\
Args=[\
/usr/lib/spark/bin/spark-submit,\
--deploy-mode,client,\
/home/hadoop/%s,\
--executor-memory,100g,\
--num-executors,3,\
--total-executor-cores,1,\
--conf,'spark.python.worker.memory=1200m',\
--conf,'spark.yarn.executor.memoryOverhead=15300',\
],ActionOnFailure=CONTINUE" % (cluster_id,script_name)\

Aber wenn ich den Job erneut ausführe, erhalte ich immer die gleiche Fehlermeldung mit dem5.5 GB of 5.5 GB physical memory used, was bedeutet, dass sich mein Gedächtnis nicht vergrößert hat. Irgendwelche Hinweise, was ich falsch mache?

BEARBEITE

Hier finden Sie Details zum erstmaligen Erstellen des Clusters:

aws emr create-cluster\
--name "Spark"\
--release-label emr-4.7.0\
--applications Name=Spark\
--bootstrap-action Path=s3://emr-code-matgreen/bootstraps/install_python_modules.sh\
--ec2-attributes KeyName=EMR2,InstanceProfile=EMR_EC2_DefaultRole\
--log-uri s3://emr-logs-zerex\
--instance-type r3.xlarge\
--instance-count 4\
--profile EMR\
--service-role EMR_DefaultRole\
--region us-west-2'

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage