Apache spark 如何发送一份工作给Kubernetes。无法实例化外部计划程序
我已经启动了一个Minikube集群,但当我让spark提交时,作业出现了一个错误 我的命令: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
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设置吗?我也包括了新创建的服务帐户,但我仍然得到相同的错误。有什么建议吗?