我已使用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
运算符是否有指向日志链接的内容,以便我可以检索它,但没有发现有用的东西。
答案 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®ion=%s
带有参数
jobId, projectId, region
或者,您可以输入:
gcloud dataproc jobs wait ${JOBID} --project ${PROJECTID} --region ${REGION}
使用URI更直接的方法是:
gsutil cat ${LOG_LINK}*
在该URL的末尾带有一个glob表达式(它不仅是一个文件,而是一组文件)。