Apache spark Spark executor吊舱在使用kubernetes作为主控器创建后迅速出错
当我在自托管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
SparkPi
示例时,执行器吊舱会快速创建->出现错误状态->被删除->被新的执行器吊舱替换
我在Google Kubernetes引擎上尝试了同样的命令,并获得了成功。我检查RBACrolebinding
,以确保服务帐户有权创建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来解决这个问题。请参阅: