Apache spark 如何发送一份工作给Kubernetes。无法实例化外部计划程序

Apache spark 如何发送一份工作给Kubernetes。无法实例化外部计划程序,apache-spark,kubernetes,Apache Spark,Kubernetes,我已经启动了一个Minikube集群,但当我让spark提交时,作业出现了一个错误 我的命令: bin/spark-submit --master k8s://https://192.168.99.101:8443 --deploy-mode cluster --name spark-test --class org.apache.spark.examples.SparkPi --conf spark.executor.instances=5 --conf spark.kubernetes.co

我已经启动了一个Minikube集群,但当我让spark提交时,作业出现了一个错误

我的命令:

bin/spark-submit --master k8s://https://192.168.99.101:8443 --deploy-mode cluster --name spark-test --class org.apache.spark.examples.SparkPi --conf spark.executor.instances=5 --conf spark.kubernetes.container.image=spark local:///opt/spark/examples/jars/spark-examples_2.11-2.4.0.jar
我得到以下错误:

2019-03-13 18:26:57错误SparkContext:91-初始化错误 SparkContext。org.apache.spark.SparkException:外部调度程序 无法在上实例化 org.apache.spark.SparkContext$.org$apache$spark$SparkContext$$createTaskScheduler(SparkContext.scala:2794) …30多个 原因: io.fabric8.kubernetes.client.KubernetesClientException:失败 执行:获取: . 信息:禁止!配置的服务帐户没有访问权限。 服务帐户可能已被吊销。豆荚 禁止使用“火花测试-1552501611130-驱动器”:用户 “system:serviceaccount:default:default”无法在中获取资源“pods” 命名空间“default”中的API组“”。。。30多


您需要在Kubernetes中创建ServiceAccount。如果您从该站点下载YAML配置,就可以完成此操作

然后跑

kubectl apply -f spark-rbac.yaml
YAML文件将创建命名空间和ServiceAccount,这是Kubernetes上Spark所需的。 但是,您还需要将spark submit命令修改为:

bin/spark-submit --master k8s://https://192.168.99.101:8443 --deploy-mode cluster --name spark-test --class org.apache.spark.examples.SparkPi \
--conf spark.kubernetes.namespace=spark \
--conf spark.kubernetes.authenticate.driver.serviceAccountName=spark-sa \
--conf spark.executor.instances=5 \
--conf spark.kubernetes.container.image=spark local:///opt/spark/examples/jars/spark-examples_2.11-2.4.0.jar

你能告诉我们kubernetes的spark设置吗?我也包括了新创建的服务帐户,但我仍然得到相同的错误。有什么建议吗?