为 运行 pig/hive/spark 个作业提供自定义 job_id 到 Google Dataproc 集群

Give custom job_id to Google Dataproc cluster for running pig/hive/spark jobs

是否有任何标志可用于为数据处理作业提供自定义 job_id。我正在使用此命令 运行 猪工作。

gcloud dataproc 作业提交猪 --cluster my_cluster --file my_queries.pig

我使用类似的命令来提交 pyspark/hive 个作业。

此命令会自行创建一个 job_id,以后很难跟踪它们。

虽然在使用底层 REST API 时可以提供您自己生成的 jobid,但目前没有任何方法可以在使用 gcloud dataproc jobs submit 提交时指定您自己的 jobid;将来可能会添加此功能。也就是说,通常当人们想要指定职位 ID 时,他们还希望能够列出更复杂的匹配表达式,或者可能在不同时间点通过不同类型的表达式列出多个类别的职位。

因此,您可能需要考虑 dataproc labels;标签专门用于此类用例,并针对高效查找进行了优化。例如:

gcloud dataproc jobs submit pig --labels jobtype=mylogspipeline,date=20170508 ...
gcloud dataproc jobs submit pig --labels jobtype=mylogspipeline,date=20170509 ...
gcloud dataproc jobs submit pig --labels jobtype=mlpipeline,date=20170509 ...

gcloud dataproc jobs list --filter "labels.jobtype=mylogspipeline"
gcloud dataproc jobs list --filter "labels.date=20170509"
gcloud dataproc jobs list --filter "labels.date=20170509 AND labels.jobtype=mlpipeline"

阅读 gcloud 代码可以看到名为 id 的参数用作作业名称

https://github.com/google-cloud-sdk/google-cloud-sdk/blob/master/lib/googlecloudsdk/command_lib/dataproc/jobs/submitter.py#L56

因此您只需要将 --id 添加到您的 gcloud 命令中

gcloud dataproc jobs submit spark --id this-is-my-job-name --cluster my-cluster --class com.myClass.Main --jars gs://my.jar