长时间运行的数据流作业失败,用户代码中没有错误



运行17 小时后,我的数据流作业失败,并显示以下消息:

The job failed because a work item has failed 4 times. Look in previous log entries for the cause of each one of the 4 failures.

这 4 次失败包括 3 名工作人员与服务失去联系,一名工作人员报告死亡:

****-q15f Root cause: The worker lost contact with the service.
****-pq33 Root cause: The worker lost contact with the service.
****-fzdp Root cause: The worker ****-fzdp has been reported dead. Aborting lease 4624388267005979538.
****-nd4r Root cause: The worker lost contact with the service.

我在 Stackdriver 中作业的工作线程日志中没有看到任何错误。这只是运气不好吗?我不知道工作项需要重试的频率,所以我不知道单个工作项在 24 小时作业过程中失败 4 次的概率是多少。但是,对于此长时间运行的作业,这种相同类型的作业失败经常发生,因此我们似乎需要某种方法来降低工作项的失败率,或增加允许的重试次数。可能吗?这似乎与我的管道代码无关,但如果相关,我将 Python SDK 与apache-beam==2.15.0一起使用。我将不胜感激有关如何调试此问题的任何建议。

更新:控制台中的"堆栈跟踪"部分完全为空。

我遇到了同样的问题,通过扩大我的工人资源解决了这个问题。具体来说,我在管道配置中设置了--machine_type=n1-highcpu-96。有关计算机类型选项的更多列表,请参阅此处。

编辑:根据管道流程的要求将其设置为highcpuhighmem

最新更新