嗨我有一个连续运行的火花提交作业/步骤而不会失败,但会丢失执行者。数据每天都在增加,最初它运行良好,但现在似乎有s3中的400gb数据(至少我认为没有足够的资源
我正在使用,18 r3.8xlarge。
"EMR_MasterInstanceType": "r3.xlarge",
"EMR_CoreInstanceType": "r3.8xlarge",
"EMR_CoreInstanceCount": "18",
"Step2_Spark_Command": "command-runner.jar,spark-submit,--class,com.lex.rex.link.modules.multipart_files.files,--name,\\\"Multipart Files Module\\\",--master,yarn,--deploy-mode,client,--executor-memory,22G,--executor-cores,4,--conf,spark.sql.shuffle.partitions=320,/home/hadoop/linking.jar,jobId=#{myJobId},environment=test",
有任何想法或见解吗? 目前的配置是否足够?
如果我正在使用18个ec2实例的r3.8xl和22G执行器内存,我会在内存处理中使用396G内存吗?我的假设是否正确?
400gb> 396gb是它失败的原因吗?
答案 0 :(得分:0)
想知道执行者的数量是多少?
假设错误信息是 ExecutorLostFailure(执行者丢失)。
它主要是由资源不足引起的,这会导致执行程序性能不佳,例如GC严重不良。您可以通过增加执行程序的数量来增加应用程序的资源。如果没有,你可以做一些调整,比如增加以下值:
spark.shuffle.io.retryWait, spark.shuffle.io.maxRetries