如果没有分配所有资源,Spark 会失败

Spark fail if not all resources are allocated

如果我们不能分配所有资源,spark 或 yarn 是否有任何标志让快速作业失败?

例如如果我运行

spark-submit   --class org.apache.spark.examples.SparkPi   
   --master yarn-client  
   --num-executors 7   
   --driver-memory 512m   
   --executor-memory 4g   
   --executor-cores 1   
/usr/hdp/current/spark2-client/examples/jars/spark-examples_*.jar 1000

现在,如果 spark 只能分配 5 个执行器,它只会分配 5 个。我们可以 运行 只用 7 个吗?否则会失败吗?

您可以在作业中设置 spark.dynamicAllocation.minExecutors 配置。为此你需要设置spark.dynamicAllocation.enabled=true,详见doc