通过Airflow提交给Dataproc的失败的Hive作业的日志链接

时间:2019-02-12 11:14:35

标签: python-3.x google-cloud-platform airflow google-cloud-dataproc google-cloud-composer

我已使用Airflow的DataprocWorkflowTemplateInstantiateInlineOperator向Dataproc集群提交了一项Hive作业。当某些作业在googlecloud-> dataproc-> jobs中失败时,我可以看到指向失败日志的链接:

  

Google Cloud Dataproc代理报告作业失败。如果有日志,则可以在“ gs:// dataproc-abcde12-efghi23-jklmn12-uk / google-cloud-dataproc-metainfo / 12354a681fgh161 / jobs / job1-abdc12jssa / driveroutput”中找到

我可以通过Airflow获取此日志链接(例如gs://dataproc-abcde12-efghi23-jklmn12-uk/google-cloud-dataproc-metainfo/12354a681fgh161/jobs/job1-abdc12jssa/driveroutput)吗?

我检查了gcp_dataproc_hook.py运算符是否有指向日志链接的内容,以便我可以检索它,但没有发现有用的东西。

1 个答案:

答案 0 :(得分:1)

似乎还没有自动创建的便捷链接来获取Airflow日志中的输出,但是可以肯定地添加它(如果您感到胆大,可以自己向Airflow发送拉取请求!否则可以提交功能请求https://issues.apache.org/jira/browse/AIRFLOW)。

通常,在给定jobid的情况下,您可以构造一个方便的URL或可复制/粘贴的CLI命令。如果您想直接使用Dataproc的UI,只需构造以下形式的URL:

https://cloud.google.com/console/dataproc/jobs/%s/?project=%s&region=%s

带有参数

jobId, projectId, region

或者,您可以输入:

gcloud dataproc jobs wait ${JOBID} --project ${PROJECTID} --region ${REGION}

使用URI更直接的方法是:

gsutil cat ${LOG_LINK}*

在该URL的末尾带有一个glob表达式(它不仅是一个文件,而是一组文件)。