This seems to be the cause of this ->
github.com/kubeflow/spark-operator/issues/1619 .. the secret is not getting
mounted die to this error -> MountVolume.SetUp failed for volume
“spark-conf-volume-driver

I'm getting same error in event logs, and the secret mounted is not getting
read

If anyone is using spark-operator, and run into this issue .. pls let me
know.
Alternatively, is there another operator that can be used ?

thanks!


On Tue, Oct 1, 2024 at 3:41 PM karan alang <karan.al...@gmail.com> wrote:

> I've kubeflow spark-operator installed on K8s (GKE), and i'm running a
> structured streaming job which reads data from kafka .. the job is run
> every 10 mins.
>
> It is giving an error shown below:
>
> ```
>
> Traceback (most recent call last):
>   File "/opt/spark/custom-dir/main.py", line 356, in <module>
>     sys.exit(main())
>   File "/opt/spark/custom-dir/main.py", line 352, in main
>     ss.readData()
>   File "/opt/spark/custom-dir/main.py", line 327, in readData
>     query = df_stream.selectExpr("CAST(value AS STRING)", "timestamp", 
> "topic").writeStream \
>   File "/usr/local/lib/python3.9/dist-packages/pyspark/sql/streaming.py", 
> line 1491, in start
>     return self._sq(self._jwrite.start())
>   File "/usr/local/lib/python3.9/dist-packages/py4j/java_gateway.py", line 
> 1304, in __call__
>     return_value = get_return_value(
>   File "/usr/local/lib/python3.9/dist-packages/pyspark/sql/utils.py", line 
> 111, in deco
>     return f(*a, **kw)
>   File "/usr/local/lib/python3.9/dist-packages/py4j/protocol.py", line 326, 
> in get_return_value
>     raise Py4JJavaError(
> py4j.protocol.Py4JJavaError: An error occurred while calling o103.start.
> : 
> com.google.cloud.hadoop.repackaged.gcs.com.google.api.client.googleapis.json.GoogleJsonResponseException:
>  403 Forbidden
> POST https://storage.googleapis.com/storage/v1/b?project=versa-kafka-poc
> {
>   "code" : 403,
>   "errors" : [ {
>     "domain" : "global",
>     "message" : "spark-gcs-acc...@versa-kafka-poc.iam.gserviceaccount.com 
> does not have storage.buckets.create access to the Google Cloud project. 
> Permission 'storage.buckets.create' denied on resource (or it may not 
> exist).",
>     "reason" : "forbidden"
>   } ],
>   "message" : "spark-gcs-acc...@versa-kafka-poc.iam.gserviceaccount.com does 
> not have storage.buckets.create access to the Google Cloud project. 
> Permission 'storage.buckets.create' denied on resource (or it may not exist)."
> }
>
>
> ```
>
> Code reading data from kafka on GKE :
>
>
> ```
>
> df_stream = self.spark.readStream.format('kafka') \
>             .option("kafka.security.protocol", "SSL") \
>             .option("kafka.ssl.truststore.location", 
> self.ssl_truststore_location) \
>             .option("kafka.ssl.truststore.password", 
> self.ssl_truststore_password) \
>             .option("kafka.ssl.keystore.location", 
> self.ssl_keystore_location) \
>             .option("kafka.ssl.keystore.password", 
> self.ssl_keystore_password) \
>             .option("kafka.bootstrap.servers", self.kafkaBrokers) \
>             .option("subscribePattern", "topic") \
>             .option("startingOffsets", "latest") \
>             .option("failOnDataLoss", "false") \
>             .option("kafka.metadata.max.age.ms", "1000") \
>             .option("kafka.ssl.keystore.type", "PKCS12") \
>             .option("kafka.ssl.truststore.type", "PKCS12") \
>             .load()
>
>         logger.info(f" df_stream, calling convertToDictForEachBatch -> 
> {df_stream}")
>         # trigger once
>
>         query = df_stream.selectExpr("CAST(value AS STRING)", "timestamp", 
> "topic").writeStream \
>             .outputMode("append") \
>             .trigger(processingTime='10 minutes') \
>             .option("truncate", "false") \
>             .option("checkpointLocation", self.checkpoint) \
>             .foreachBatch(self.convertToDictForEachBatch) \
>             .start()
>
> ```
>
> I'm unable to understand why error states - bucket.storage.create
> privilege not there when the code is actually reading data from kafka
>
> Any ideas on how to debug/fix ?
>
> Anyone used the kubeflow spark-operator (v3.1.1) for streaming jobs on
> kubernetes ?
>
> tia!
>
> here is stack overflow ticket ->
>
>
> https://stackoverflow.com/questions/79044916/kubeflow-spark-operator-error-in-querying-strimzi-kafka-using-structured-strea
>
>
>
>
>

Reply via email to