Поток данных TextIO.write проблемы с масштабированием - PullRequest
0 голосов
/ 14 марта 2019

Я создал простой конвейер потока данных, который считывает байтовые массивы из pubsub, открывает их окна и записывает в текстовый файл в GCS. Я обнаружил, что с темами с меньшим трафиком это работает отлично, однако я запустил его на тему, которая занимает около 2,4 ГБ в минуту, и некоторые проблемы начали возникать.

При запуске трубопровода я не устанавливал количество рабочих (поскольку я предполагал, что оно будет автоматически масштабироваться по мере необходимости). При приеме этого объема данных число работников оставалось равным 1, но TextIO.write () занимало 15+ минут, чтобы написать 2-минутное окно. Это будет продолжаться до тех пор, пока не закончится память. Есть ли веская причина, по которой Dataflow не выполняет автоматическое масштабирование, когда этот шаг создается из резервной копии?

Когда я увеличил количество рабочих до 6, время записи файлов начиналось примерно с 4 минут в течение 5-минутного окна, а затем уменьшалось до 20 секунд.

Кроме того, при использовании 6 рабочих может возникнуть проблема с вычислением времени на стене? Кажется, что мой никогда не выключается, даже если поток данных перехватил и после 4 часов работы мое резюме для шага записи выглядело так:

Step summary
Step name: Write to output
System lag: 3 min 30 sec
Data watermark: Max watermark
Wall time: 1 day 6 hr 26 min 22 sec
Input collections: PT5M Windows/Window.Assign.out0
Elements added: 860,893
Estimated size: 582.11 GB

ID задания: 2019-03-13_19_22_25-14107024023503564121

1 Ответ

0 голосов
/ 20 марта 2019

Итак, для каждого из ваших вопросов:

Есть ли веская причина, по которой Dataflow не масштабируется автоматически, когда этот шаг получает такое резервное копирование?

Потоковое автоматическое масштабированиеявляется бета-функцией, и ее необходимо явно включить, чтобы она работала в соответствии с документацией здесь .

При использовании 6 рабочих может возникнуть проблема с вычислением стенывремя?

Полагаю, вы запустили конвейер 6 рабочих в течение примерно 5 часов и 4 минут, таким образом, представленное "Время стены" - это Рабочие * Часы.

...