在Google Cloud Dataflow服务上执行作业需要访问Google云端存储吗?

Dan*_*rin 2 google-cloud-dataflow

以下答案包括对以下常见问题的回答.

  • 为什么需要云存储来在Dataflow服务上执行作业?
  • 我可以执行对云存储具有只读访问权限的作业吗?

Dan*_*rin 6

每个Dataflow作业都使用云存储有两个目的:

  1. 分段位置是在数据流SDK上传必要执行作业的罐子.Dataflow Service需要对分段位置的访问权限.

    SDK需要对登台进行访问才能上载包含作业代码的jar.但是,如果所有jar都已在当前表单中暂存,则SDK可以使用只读访问权限执行作业.

    请注意,暂存文件在作业中保持不变.

  2. 临时位置是执行作业时临时存储使用的数据流服务.该服务需要对临时位置的访问权限.

    作业成功时删除临时存储.

这两个分段位置临时位置使用控制DataflowPipelineOptions.请注意,如果仅指定了这两个位置中的一个,则Dataflow将对两者使用相同的路径.

现在,假设您之前已将所有jar分别上载到分段位置,只要具有对分段位置的只读权限,用户就应该能够执行作业,只要她指定一个单独的可写临时位置即可.以下示例命令将运行WordCount:

java -cp your_bundled_jar com.google.cloud.dataflow.examples.WordCount 
    --project=PROJECT --runner=BlockingDataflowPipelineRunner
    --stagingLocation=gs://READONLY-BUCKET/staging
    --tempLocation=gs:/WRITABLE-BUCKET/temp
    --output=gs://WRITABLE-BUCKET/output
Run Code Online (Sandbox Code Playgroud)