Длительное задание Dataflow не выполняется без ошибок в коде пользователя - PullRequest
1 голос
/ 07 октября 2019

После выполнения в течение 17 часов мое задание Dataflow завершилось неудачно со следующим сообщением:

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. Это просто невезение? Я не знаю, как часто нужно повторять рабочие элементы, поэтому я не знаю, какова вероятность того, что один рабочий элемент выйдет из строя 4 раза в течение 24-часовой работы. Но такой же тип сбоя задания часто случается для этой длительной работы, поэтому кажется, что нам нужен какой-то способ либо уменьшить частоту отказов рабочих элементов, либо увеличить допустимое количество повторных попыток. Возможно ли это? Похоже, это не связано с моим конвейерным кодом, но в случае необходимости я использую Python SDK с apache-beam==2.15.0. Буду признателен за советы по устранению неполадок.

Обновление: раздел "STACK TRACES" в консоли полностью пуст.

1 Ответ

2 голосов
/ 08 октября 2019

У меня была такая же проблема, и она была решена путем увеличения ресурсов моих рабочих. В частности, я установил --machine_type=n1-highcpu-96 в своих конфигах конвейера. См. this для более подробного списка опций типа машины.

Edit: установите его на highcpu или highmem в зависимости от требований вашего конвейерного процесса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...