Spark Submit: вы не указали файл krb5.conf локально или через ConfigMap

#apache-spark #minikube #kubernetes-pod

#apache-spark #minikube #kubernetes-pod

Вопрос:

Я использую to spark-submit напрямую для отправки приложения Spark в кластер Kubernetes. используя приведенную ниже команду :

Отправить Spark

 ./bin/spark-submit --master k8s://https://localhost:8443  
--deploy-mode cluster  --name spark-pi 
--class com.xxx.Main 
--conf spark.executor.instances=5  
--conf spark.kubernetes.container.image=spark:latest 
local:///home/SparkJob_jar spark.kubernetes.file.upload.path=/opt/xxx 
  

Но я получаю приведенное ниже исключение:

 20/09/25 11:33:57 WARN Utils: Your hostname, XXXX resolves to a loopback address: 127.0.1.1; using xxx.yyy.zzz instead (on interface wlp59s0)
20/09/25 11:33:57 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/opt/spark/jars/spark-unsafe_2.12-3.0.1.jar) to constructor java.nio.DirectByteBuffer(long,int)
WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
20/09/25 11:33:57 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
20/09/25 11:33:58 INFO SparkKubernetesClientFactory: Auto-configuring K8S client using current context from users K8S config file
20/09/25 11:33:58 INFO KerberosConfDriverFeatureStep: You have not specified a krb5.conf file locally or via a ConfigMap. Make sure that you have the krb5.conf locally on the driver image.
20/09/25 11:33:58 WARN WatchConnectionManager: Exec Failure
javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:326)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:269)
  

Сообщение https://issues.apache.org/jira/browse/SPARK-31800 предложил добавить spark.kubernetes.file.загрузка.чтобы решить проблему, я добавил его в команду отправки, но проблема все еще существует. Я ценю любую помощь, чтобы выяснить основную причину этой проблемы.

Ответ №1:

возможно, вам придется добавить следующие флаги конфигурации, чтобы сделать сертификаты доступными

 --conf spark.kubernetes.authenticate.caCertFile=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt  
--conf spark.kubernetes.authenticate.oauthTokenFile=/var/run/secrets/kubernetes.io/serviceaccount/token