[ 
https://issues.apache.org/jira/browse/SPARK-60931?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated SPARK-60931:
-----------------------------------
    Labels: pull-request-available  (was: )

> Batch TransformWithState resolves an executor-local RocksDB path on HDFS
> ------------------------------------------------------------------------
>
>                 Key: SPARK-60931
>                 URL: https://issues.apache.org/jira/browse/SPARK-60931
>             Project: Spark
>          Issue Type: Bug
>          Components: Structured Streaming
>    Affects Versions: 5.0.0
>            Reporter: Adam Binford
>            Priority: Major
>              Labels: pull-request-available
>
> h3. Description
> Batch {{TransformWithState}} fails when Hadoop's {{fs.defaultFS}} is HDFS. 
> The batch operator creates an executor-local temporary directory and uses its 
> bare absolute path as the state store checkpoint root. RocksDB treats that 
> path as its DFS root, resolves it through Hadoop's default filesystem, and 
> attempts to create it on HDFS.
> h3. Regression
> This appears to regress with 
> [SPARK-54984|https://issues.apache.org/jira/browse/SPARK-54984] (commit 
> [acc80fd1b205|https://github.com/apache/spark/commit/acc80fd1b205792a43cc352a8e492e34bbe880da]),
>  from [PR #53747|https://github.com/apache/spark/pull/53747]. The commit 
> added root-directory creation to RocksDB version-0 loading. Batch 
> {{TransformWithState}} initializes its store at version 0, so it now reaches 
> that creation path. The corresponding call is absent from Spark 4.1's 
> version-0 load path; batch completion aborts the store instead of committing 
> it.
> The PR discussion says this handles newly repartitioned partitions with 
> missing checkpoint directories during {{loadEmpty}}, but does not discuss the 
> HDFS default-filesystem effect or batch {{TransformWithState}}: [review 
> response|https://github.com/apache/spark/pull/53747#discussion_r2677386642].
> h3. Reproduction
> Configure Hadoop with {{fs.defaultFS}} pointing to HDFS, then run 
> {{TransformWithState}} in batch mode. The executor-local temporary path is 
> treated as an HDFS path, and directory creation fails.
> h3. Expected behavior
> Batch-local RocksDB temporary paths should be handled on the local filesystem.
> h3. Actual behavior
> Hadoop resolves the bare local path against {{fs.defaultFS}} and attempts to 
> create it on HDFS.
> h3. GitHub issue
> https://github.com/apache/spark/issues/60097



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to