Рабочий узел - сходство файловой системы с Apache Flink - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть особая система мониторинга с тысячами файлов локально (без HDFS) на каждом отслеживаемом сервере.Я хочу использовать flink для запроса этих файлов.Если я создаю рабочий узел на каждой машине и они запрашивают определенный файл, как главный узел узнает, что нужно отправить эту задачу на узел, где находится соответствующий файл?Одна из моих отставок - минимизировать сетевой трафик и избежать перемещения данных между узлами.Есть ли способ как-то намекнуть?

1 Ответ

0 голосов
/ 27 сентября 2018

Я не уверен, что вы подразумеваете под "... используйте Flink для запроса файлов".Вы можете создать пользовательскую SourceFunction , которая знает, как читать из локальных файлов, которые вы затем анализируете / обрабатываете с помощью Flink, и представляете результаты с помощью Queryable State .Если в этом потоке нет разделения, то все эти цепочечные операторы будут работать в одном и том же слоте в диспетчере задач и, таким образом, минимизировать сетевой трафик.

Вы бы хотели установить параллелизм SourceFunction равным числуузлов (и, следовательно, количество менеджеров задач).Но вам все равно нужно убедиться, что Flink не запускает две одинаковые SourceFunction на одном диспетчере задач и, следовательно, на одном и том же узле, что вам не подойдет.

В общем, Flinkне обеспечивает большой поддержки для точного размещения задач.Я думаю, что если вы установите taskmanager.numberOfTaskSlots в 1, то это может заставить его развернуть отдельную функцию SourceFunction (плюс цепочечные операторы, следующие за ней) для каждого диспетчера задач, но вам придется попробовать.

С уважением

- Кен

...