驱动程序内核必须为正数



我已经将Spark从3.1.1版本升级到3.2.1版本。现在,所有现有的Spark作业都会因以下错误而中断。

Exception in thread "main" org.apache.spark.SparkException: Driver cores must be a positive number
at org.apache.spark.deploy.SparkSubmitArguments.error(SparkSubmitArguments.scala:634)
at org.apache.spark.deploy.SparkSubmitArguments.validateSubmitArguments(SparkSubmitArguments.scala:257)
at org.apache.spark.deploy.SparkSubmitArguments.validateArguments(SparkSubmitArguments.scala:234)
at org.apache.spark.deploy.SparkSubmitArguments.<init>(SparkSubmitArguments.scala:119)
at org.apache.spark.deploy.SparkSubmit$$anon$2$$anon$3.<init>(SparkSubmit.scala:1026)
at org.apache.spark.deploy.SparkSubmit$$anon$2.parseArguments(SparkSubmit.scala:1026)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:85)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1043)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1052)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

我们在集群模式下与apachemesos一起使用Spark,并与cassandra位于同一位置。

我尝试了几个选项:

e.g. appl/spark/bin/spark-submit --name "Testjob" --deploy-mode cluster --master mesos://<master node>:7077 --executor-cores 4 --driver-memory 1G --driver-cores 1 -class ....  

你有解决这个问题的任何提示或解决方案吗。

非常感谢。。。欢呼

不幸的是,我认为由于这个功能和MesosClusterDispatcher的工作方式,不可能在集群模式下使用Mesos运行Spark 3.2.x。基本上,Dispatcher提交的Spark应用程序带有作为浮点数的--driver-cores参数,然后Spark(SparkSubmitArguments.scala(将其读取为String并进行如下解析:

driverCores.toInt

当然这是失败的。

我提出了一个快速修复方案,但与此同时,我只是用我在PR中所做的更改构建了代码。我也报告了这是一个错误。

最新更新