Java Kubernetes上的Spark-未能将typesafe application.conf传递给驱动程序和执行程序吊舱
我们正在将Spark工作负载从Cloudera迁移到Kubernetes 出于演示目的,我们希望在集群模式下使用spark submit在minikube集群中运行一个spark作业 我想使用Java Kubernetes上的Spark-未能将typesafe application.conf传递给驱动程序和执行程序吊舱,java,apache-spark,kubernetes,typesafe,typesafe-config,Java,Apache Spark,Kubernetes,Typesafe,Typesafe Config,我们正在将Spark工作负载从Cloudera迁移到Kubernetes 出于演示目的,我们希望在集群模式下使用spark submit在minikube集群中运行一个spark作业 我想使用spark.driver.defaultJavaOptions和spark.executor.defaultJavaOptions将类型安全application.conf文件作为java选项传递给驱动程序和执行程序JVM 配置文件已在构建时复制到/opt/spark/config目录下的spark doc
spark.driver.defaultJavaOptions
和spark.executor.defaultJavaOptions将类型安全application.conf
文件作为java选项传递给驱动程序和执行程序JVM
配置文件已在构建时复制到/opt/spark/config
目录下的spark docker映像。相同的docker映像用于运行驱动程序和执行器吊舱
application.conf的传递方式如下:
--conf spark.driver.defaultJavaOptions="-Dconfig.file=file://${POD_CONFIG_DIR}/application.conf $JAVA_ARGS" \
--conf spark.executor.defaultJavaOptions="-Dconfig.file=file://${POD_CONFIG_DIR}/application.conf" \
其中${POD_CONFIG_DIR}是/opt/spark/CONFIG
我的作业无法正常工作,实际上它将默认值带入reference.conf
文件中。我没有io文件,但没有发现异常。我会错过什么?先谢谢你
这是我的全速提交命令
spark-submit \
--master k8s://https://192.168.49.2:8443 \
--driver-memory ${SPARK_DRIVER_MEMORY} --executor-memory ${SPARK_EXECUTOR_MEMORY} \
--deploy-mode cluster \
--class "${MAIN_CLASS}" \
--conf spark.driver.defaultJavaOptions="-Dconfig.file=file://${POD_CONFIG_DIR}/application.conf $JAVA_ARGS" \
--conf spark.executor.defaultJavaOptions="-Dconfig.file=file://${POD_CONFIG_DIR}/application.conf" \
--conf spark.executor.instances=5 \
--conf spark.kubernetes.container.image=$SPARK_CONTAINER_IMAGE \
--conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
--conf spark.kryoserializer.buffer.max=512M \
--conf spark.driver.maxResultSize=8192M \
--conf spark.kubernetes.authenticate.caCertFile=$HOME/.minikube/ca.crt \
--conf spark.executor.extraClassPath="./" \
local:///path/to/uber/jar/file.jar \
"${PROG_ARGS[@]}" > $LOG_FILE 2>&1