Apache spark Spark executor吊舱在使用kubernetes作为主控器创建后迅速出错

Apache spark Spark executor吊舱在使用kubernetes作为主控器创建后迅速出错,apache-spark,kubernetes,Apache Spark,Kubernetes,当我在自托管kubernetes集群上启动SparkPi示例时,执行器吊舱会快速创建->出现错误状态->被删除->被新的执行器吊舱替换 我在Google Kubernetes引擎上尝试了同样的命令,并获得了成功。我检查RBACrolebinding,以确保服务帐户有权创建pod 猜测下一个执行器吊舱何时准备就绪,我可以使用kubectl descripe pod查看吊舱是否已实际创建: Events: Type Reason Age From

当我在自托管kubernetes集群上启动
SparkPi
示例时,执行器吊舱会快速创建->出现错误状态->被删除->被新的执行器吊舱替换

我在Google Kubernetes引擎上尝试了同样的命令,并获得了成功。我检查RBAC
rolebinding
,以确保服务帐户有权创建pod

猜测下一个执行器吊舱何时准备就绪,我可以使用
kubectl descripe pod
查看吊舱是否已实际创建:

Events:
  Type    Reason     Age   From                   Message
  ----    ------     ----  ----                   -------
  Normal  Scheduled  1s    default-scheduler      Successfully assigned default/examplepi-1563878435019-exec-145 to slave-node04
  Normal  Pulling    0s    kubelet, slave-node04  Pulling image "myregistry:5000/imagery:c5b8e0e64cc98284fc4627e838950c34ccb22676.5"
  Normal  Pulled     0s    kubelet, slave-node04  Successfully pulled image "myregistry:5000/imagery:c5b8e0e64cc98284fc4627e838950c34ccb22676.5"
  Normal  Created    0s    kubelet, slave-node04  Created container executor
这是我的
spark提交
呼叫:

/opt/spark/bin/spark提交\
--k8s主机://https://mycustomk8scluster:6443 \
--名称示例pi\
--部署模式群集\
--驱动程序存储器2G\
--执行器存储器2G\
--conf spark.executor.instances=2\
--conf spark.kubernetes.authenticate.driver.serviceAccountName=spark\
--conf spark.driver.extraJavaOptions=-Dlog4j.configuration=file:///opt/spark/work-dir/log4j.properties \
--conf spark.kubernetes.container.image=myregistry:5000/images:c5b8e0e64cc98284fc4627e838950c34ccb22676.5\
--conf spark.kubernetes.executor.container.image=myregistry:5000/images:c5b8e0e64cc98284fc4627e838950c34ccb22676.5\
--conf spark.kubernetes.container.image.pullPolicy=Always\
--conf spark.kubernetes.driver.pod.name=pi驱动程序\
--conf spark.driver.allowMultipleContexts=true\
--conf spark.kubernetes.local.dirs.tmpfs=true\
--类别com.olameter.sdi.images.IngestFromGrpc\
--类org.apache.spark.examples.SparkPi\
local:///opt/spark/examples/jars/spark-examples_2.11-2.4.3.jar 100

我希望应创建所需的执行人(2)。如果驱动程序脚本无法创建它,我至少希望一些日志能够诊断问题。

问题与Hadoop+Spark集成有关。我使用的是不带Hadoop的Spark二进制文件
Spark-2.4.3-bin-without-Hadoop.tgz
+Hadoop 3.1.2。对于Spark Executor,使用环境变量的配置似乎存在问题

我用Hadoop 3.1.2编译Spark来解决这个问题。请参阅: