我正试图通过Apache气流通过DataprocClusterCreateOperator创建dataproc集群气流版本:1.10.15作曲家版本:1.16.4我想将项目使用的临时存储桶分配给集群,而不是谷歌在运行时创建的存储桶。当我们使用选项--temp bucket通过命令行创建集群时,这个选项是可用的,但这个变量不能通过ClusterCreateOperator传递。
Dataproc操作员信息:https://airflow.apache.org/docs/apache-airflow/1.10.15/_modules/airflow/contrib/operators/dataproc_operator.html
通过命令创建集群:
gcloud dataproc clusters create cluster-name
--properties=core:fs.defaultFS=gs://defaultFS-bucket-name
--region=region
--bucket=staging-bucket-name
**--temp-bucket=project-owned-temp-bucket-name **
other args ...
create_cluster = DataprocClusterCreateOperator(
task_id="create_cluster",
project_id="my-project_id",
cluster_name="my-dataproc-{{ ds_nodash }}",
num_workers=2,
storage_bucket="project_bucket",
region="us-east4",
... other params...
)
不幸的是,Ariflow中的方法DataprocClusterCreateOperator
不支持属性temp-bucket
。只能将此属性与gcloud command
或REST API
一起使用。
使用REST API
,可以在cluster.create
中使用这些字段ClusterConfig.configBucket
和ClusterConfig.tempBucket
。
一个可能的解决方案是创建一个scheduler job
。您可以查看此文档。