Облачный поток данных Google предоставляет подсказки памяти для конвейера - PullRequest
0 голосов
/ 18 октября 2018

Мой конвейер создает большие промежуточные массивы внутри CombineFn.Когда я бегу с небольшим количеством работников, трубопровод успешен.Когда я увеличиваю количество рабочих, конвейер выходит из строя из-за ошибок OOM на рабочих на этом этапе.Я не совсем уверен, почему это происходит, но я думаю, что поток данных недооценивает объем памяти, необходимый на шаге add_input, и создает слишком много аккумуляторов.

Есть ли какой-нибудь способ, которым я могу дать подсказки конвейеру, говоря что-то вроде каждого аккумулятора требует X МБ памяти?

Я писал об этой проблеме раньше здесь .

Я сейчас использую Apache Beam Python SDK 2.7, но проблема остается.

1 Ответ

0 голосов
/ 20 октября 2018

Я смог решить эту проблему, создав, а затем сразу же удалив массив, размер которого немного больше размера моего промежуточного элемента в функции add_input.Не зная внутренностей Google, трудно сказать, почему это сработало, и если я продолжу увеличивать количество работников, возможно, я снова столкнусь с той же проблемой.Но попробуйте, если кто-то столкнется с той же проблемой.

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