Я пытаюсь отправить работу Spark в Kubernetes и записать логи на S3. Я использую EKS и режим клиента Spark
Я могу записывать свои журналы Spark в локальный каталог, например, работает ниже:
bin/spark-submit \
--master k8s://https://<k8s-master>:443 \
--deploy-mode client \
--name spark-pi \
--class org.apache.spark.examples.SparkPi \
--conf spark.executor.instances=5 \
--conf spark.eventLog.enabled=true \
--conf spark.eventLog.dir=file:/tmp/spark_data \
--conf spark.kubernetes.container.image=gcav66/spark:spark-gus \
--conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
file:///home/gus/spark-2.4.4-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.4.jar
Я хотел бы хранить журналы в ведро S3. Основываясь на документации Spark (https://spark.apache.org/docs/latest/running-on-kubernetes.html#secret -management ), я пытаюсь передать свои AWS ключи доступа и секретного ключа через spark.kubernetes.driver.secretKeyRef.[EnvName]
bin/spark-submit \
--master k8s://https://<k8s-master>:443 \
--deploy-mode client \
--name spark-pi \
--class org.apache.spark.examples.SparkPi \
--conf spark.executor.instances=3 \
--conf spark.eventLog.enabled=true \
--conf spark.eventLog.dir=s3a://<my-bucket> \
--conf spark.history.fs.logDirectory=s3a://<my-bucket> \
--conf spark.kubernetes.container.image=gcav66/spark:spark-gus \
--conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
--spark.kubernetes.driver.secretKeyRef.AWS_ACCESS_KEY_ID=aws-secrets:key \
--spark.kubernetes.driver.secretKeyRef.AWS_SECRET_ACCESS_KEY=aws-secrets:secret \
--spark.kubernetes.executor.secretKeyRef.AWS_ACCESS_KEY_ID=aws-secrets:key \
--spark.kubernetes.executor.secretKeyRef.AWS_SECRET_ACCESS_KEY=aws-secrets:secret \
file:///home/gus/spark-2.4.4-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.4.jar
Ошибка, которую я получаю это: Error: Unrecognized option: --spark.kubernetes.driver.secretKeyRef.AWS_ACCESS_KEY_ID
У меня есть переменная окружения AWS_ACCESS_KEY_ID
, и я создал секрет Kubernetes через kubectl create secret generic aws-secrets --from-file=aws-access-key --from-file=aws-secret-key
$ kubectl get secret
NAME TYPE DATA AGE
aws-secrets Opaque 2 8h
Я не думаю, что у меня есть опечатка - любая идеи?