You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Kenneth Knowles (Jira)" <ji...@apache.org> on 2022/01/16 14:30:00 UTC

[jira] [Commented] (BEAM-10295) FileBasedSink: allow setting temp directory provider per dynamic destination

    [ https://issues.apache.org/jira/browse/BEAM-10295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17476804#comment-17476804 ] 

Kenneth Knowles commented on BEAM-10295:
----------------------------------------

Hi [~davidak09]. Sorry this bug did not get much attention yet. I would actually characterize it as a significant loss of functionality that file based sink dynamic destinations does not really support writing to multiple storage destinations where "move" doesn't work. We either need a (more expensive) implementation of "move" or a workaround, or at least a clear error message in the case of HDFS.

> FileBasedSink: allow setting temp directory provider per dynamic destination
> ----------------------------------------------------------------------------
>
>                 Key: BEAM-10295
>                 URL: https://issues.apache.org/jira/browse/BEAM-10295
>             Project: Beam
>          Issue Type: Bug
>          Components: io-java-hadoop-file-system, sdk-java-core
>            Reporter: David Janicek
>            Priority: P1
>              Labels: Clarified
>
> Dynamic file destinations allow value-dependent writes in FileBasedSink. When using hadoop file system this means user can write some values to destination at *cluster-A* and some values to destination at *cluster-B*.
> Since BEAM-7613 was fixed this works fine until the *moveToOutputFiles* method is called. This method internally calls *FileSystems.rename* which obviously requires that source files (temporary files) and target files (resolved by dynamic destination's function) are on the same cluster. But the temp directory provider can be set only one per file sink.
> This could be fixed by adding some kind of *getTempDirectoryProvider* method into dynamic destinations (e.g. into *DefaultFilenamePolicy.Params*).
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)