Stimuler l'étincelle.de fil.exécuteur testamentaire.memoryOverhead

Je suis en train de lancer un (py)Étincelle de travail sur les EMR qui permettra de traiter une grande quantité de données. Actuellement, mon travail est échoué avec le message d'erreur suivant:

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.

J'ai donc google ferais comment pour ce faire, et a constaté que je dois passer le long de la spark.yarn.executor.memoryOverhead paramètre avec l' --conf drapeau. Je suis en train de faire de cette façon:

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)\

Mais quand j'exécute à nouveau le travail qu'il continue de me donner le même message d'erreur, avec la 5.5 GB of 5.5 GB physical memory used, ce qui implique que mon mémoire n'a pas augmenté.. tous les conseils sur ce que je fais de mal?

MODIFIER

Voici plus de détails sur comment j'ai d'abord créer le cluster:

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'

Grâce.

Avez-vous vérifier les journaux de l'emploi ?
Oui @Koffee, c'est là où j'ai obtenu le message d'erreur. C'est un échec quand il essaie d'exécuter un SparkSQL déclaration qui regroupe les données par un certain nombre de variables, puis agrégats ("select nom, min(nombre) from table group by nom"). J'ai copié une vue plus détaillée de l'article du journal ici: pastebin.com/KVrbDkHu
Quelle instance utilisez-vous ? m3.xlarge ? Je pense que --total-executor-cores argument ne pouvait être utilisé par Étincelle en mode autonome, et non sur le Fil.
Je suis à l'aide de 4 instances de r3.xlarge. Avez-vous des suggestions de qui Args=[] pour passer à l'addition des mesures pour augmenter spark.yarn.executor.memoryOverhead? J'ai essayé de l'enlever --total-executor-cores mais le résultat est le même....
Peut-être que vous pourriez essayer de réduire l' --exécuteur de mémoire, cette option correspond à la quantité de mémoire à utiliser par exécuteur processus. r3.xlarge contient seulement 30,5 g de sorte que vous ne peut pas avoir de 100g par l'exécuteur testamentaire.

OriginalL'auteur masta-g3 | 2016-06-29