Распределение контента между узлами кластера в пограничных процессорах NiFi - PullRequest
0 голосов
/ 07 февраля 2019

Я изучал документацию NiFi.Я должен согласиться с тем, что это один из хорошо документированных проектов с открытым исходным кодом.

Насколько я понимаю, процессор работает на всех узлах кластера.Однако мне было интересно, как контент распределяется между узлами кластера, когда мы используем процессоры извлечения контента, такие как FetchS3Object, FetchHDFS и т. Д. В процессоре, таком как FetchHDFS или FetchSFTP, все узлы будут подключаться к источнику?Разделяет ли он содержимое и извлекает ли его из нескольких узлов или Один узел извлекает содержимое и распределяет нагрузку в очередях вниз по потоку?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Ответом @dagget традиционно был подход к решению этой ситуации, часто называемый шаблоном «список + выборка».Процессор списков работает только на первичном узле, списки отправляются в RPG для повторного распределения по кластеру, входной порт получает списки и подключается к процессору выборки, работающему на всех узлах, выбирающих параллельно.

В 1.8.0 имеютсяТеперь загрузите сбалансированные соединения, которые устраняют необходимость в RPG.Вы по-прежнему запускаете процессор List только на первичном узле, но затем подключаете его напрямую к процессорам Fetch и настраиваете промежуточную очередь для балансировки нагрузки.

0 голосов
/ 07 февраля 2019

Я думаю, что в этом документе есть ответ на ваш вопрос:

https://community.hortonworks.com/articles/16120/how-do-i-distribute-data-across-a-nifi-cluster.html

enter image description here

Для других хранилищ файлов идеяэто то же самое.

все ли узлы будут подключаться к источнику?

Да.Если вы не ограничивали свой процессор для работы только на основном узле - он работает на всех узлах.

enter image description here

...