提问者:小点点

如何接收管道数据流作业失败的根本原因


我正在Dataflow中运行我的管道。我想使用Dataflow作业的id收集所有错误消息。我使用的是Apache-Beam 2.3.0和Java8。

DataflowPipelineJob dataflowPipelineJob = ((DataflowPipelineJob) entry.getValue());
String jobId = dataflowPipelineJob.getJobId();
DataflowClient client = DataflowClient.create(options);
Job job = client.getJob(jobId);

有没有办法只接收来自管道的错误消息?


共1个答案

匿名用户

对读取Dataflow日志消息的编程支持不是很成熟,但有几个选项:

>

  • 由于您已经拥有DataflowPipelineJob实例,您可以使用waitUntilFinish()重载来接受JobMessagesHandler参数来过滤和捕获错误消息。您可以看到DataflowPipelineJob如何在其自己的waitUntilFinish()实现中使用它。

    或者,您可以使用Dataflow RESTAPI查询作业日志:projects.jobs消息/列表。API接受最小重要性参数,这将允许您仅查询错误。

    请注意,在这两种情况下,可能会出现不致命且不会直接导致作业失败的错误消息。

  • 相关问题