Google cloud platform 在google dataflow worker上暂存文件
Dataflow SDK中是否有允许我将资源文件暂存到工作程序上的内容?我需要在文件系统上为执行NLP的自定义DoFn提供特定的静态文件资源。我的目标是从类加载器中获取一个zip文件资源,并在工作程序初始化时在工作程序文件系统上只解压缩一次,而不是在自定义DoFn中尝试这样做。您可以指定Google cloud platform 在google dataflow worker上暂存文件,google-cloud-platform,google-cloud-dataflow,Google Cloud Platform,Google Cloud Dataflow,Dataflow SDK中是否有允许我将资源文件暂存到工作程序上的内容?我需要在文件系统上为执行NLP的自定义DoFn提供特定的静态文件资源。我的目标是从类加载器中获取一个zip文件资源,并在工作程序初始化时在工作程序文件系统上只解压缩一次,而不是在自定义DoFn中尝试这样做。您可以指定--filesToStage来指定应该暂存的文件。有几个问题需要注意: 默认情况下,Dataflow SDK将--filesToStage设置为类路径中的所有文件,从而确保运行管道所需的代码可供工作人员使用。如果
--filesToStage
来指定应该暂存的文件。有几个问题需要注意:
--filesToStage
设置为类路径中的所有文件,从而确保运行管道所需的代码可供工作人员使用。如果覆盖此选项,则需要确保它包含您的代码--filesToStage=foo.zip
,则文件名将是foo-.zip
。您需要迭代类路径中的所有文件以找到合适的文件--filesToStage
的文档
更多信息。我的问题更多地与“钩子”或API有关,在工作节点开始执行工作之前,我可以从“暂存资源”中提取一次文件。我能够暂存所需的文件,但在节点上执行任何工作之前,我找不到在本地检索和扩展资源的位置。我已经用“startBundle”方法在DonFn中这样做了,但我认为这不是最好的方法,因为这对任何工人来说都是常见的。由于正在使用NLP库,这些静态文件需要位于本地文件系统上。