[ https://issues.apache.org/jira/browse/SPARK-1946?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas Graves resolved SPARK-1946. ---------------------------------- Resolution: Fixed Fix Version/s: 1.1.0 > Submit stage after executors have been registered > ------------------------------------------------- > > Key: SPARK-1946 > URL: https://issues.apache.org/jira/browse/SPARK-1946 > Project: Spark > Issue Type: Improvement > Components: Spark Core > Affects Versions: 1.0.0 > Reporter: Zhihui > Fix For: 1.1.0 > > Attachments: Spark Task Scheduler Optimization Proposal.pptx > > > Because creating TaskSetManager and registering executors are asynchronous, > if running job without enough executors, it will lead to some issues > * early stages' tasks run without preferred locality. > * the default parallelism in yarn is based on number of executors, > * the number of intermediate files per node for shuffle (this can bring the > node down btw) > * and amount of memory consumed on a node for rdd MEMORY persisted data > (making the job fail if disk is not specified : like some of the mllib algos > ?) > * and so on ... > (thanks [~mridulm80] 's [comments | > https://github.com/apache/spark/pull/900#issuecomment-45780405]) > A simple solution is sleeping few seconds in application, so that executors > have enough time to register. > A better way is to make DAGScheduler submit stage after a few of executors > have been registered by configuration properties. > \# submit stage only after successfully registered executors arrived the > ratio, default value 0 in Standalone mode and 0.9 in Yarn mode > spark.scheduler.minRegisteredRatio = 0.8 > \# whatever registered number is arrived, submit stage after the > maxRegisteredWaitingTime(millisecond), default value 10000 > spark.scheduler.maxRegisteredWaitingTime = 5000 -- This message was sent by Atlassian JIRA (v6.2#6252)