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

时间:2015-08-13 01:05:33

标签: google-cloud-dataflow

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

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

1 个答案:

答案 0 :(得分:6)

每个Dataflow作业都将Cloud Storage用于两个目的:

  1. 登台位置是Dataflow SDK上载执行作业所需的jar的位置。数据流服务需要读取访问分段位置。

    SDK需要写入访问分段才能上传包含作业代码的jar。但是,如果所有jar都已在当前表单中暂存,则SDK可以使用只读访问权限执行作业。

    请注意,暂存文件会在作业中保留。

  2. 数据流服务使用临时位置在作业执行期间进行临时存储。该服务需要访问临时位置。

    在工作成功时删除临时存储。

  3. 使用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