Aumentando o spark.yarn.executor.memoryOverhead
Estou tentando executar um trabalho (py) Spark no EMR que processará uma grande quantidade de dados. Atualmente, meu trabalho está falhando com a seguinte mensagem de erro:
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.
Então, pesquisei no Google como fazer isso e descobri que deveria passar adiantespark.yarn.executor.memoryOverhead
parâmetro com o sinalizador --conf. Estou fazendo assim:
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)\
Mas quando eu executo o trabalho, ele continua me dando a mesma mensagem de erro, com o5.5 GB of 5.5 GB physical memory used
, o que implica que minha memória não aumentou .. alguma dica sobre o que estou fazendo de errado?
EDITAR
Aqui estão os detalhes de como eu crio o cluster inicialmente:
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'
Obrigado.