2016-10-24 1 views
1

Я использую NiFi для выполнения некоторых запросов на удаленном улье.
Поскольку запрос является сложным и не выбирает ничего, что мне нужно для использования процессора PutHiveQL, который требует запроса как FlowFile.
Чтобы произвести запрос в файл потока, я использую GenerateFlowFile, а затем ReplaceText.
В кластере есть 3 хоста, и запрос выполняется 3 раза.
Есть ли способ, чтобы этот запрос был сгенерирован/выполнен один раз простым способом?
apache-nifi: как избежать дублирования при использовании шаблонов

Чтобы избежать дублирования, я пытаюсь использовать HashContent, за которым следует DetectDuplicate, и я столкнулся с проблемой сохранения кеша.

Как я могу удалить запись из DistributedMapCacheService с использованием процессора?
Есть ли способ установить TTL для каждой записи, которая хранится в DistributedMapCacheService?

ответ

3

Вы можете запланировать, чтобы процессор GenerateFlowFile работал только на «основном узле» со вкладки планирования процессора. Это приведет к тому, что только основной узел в вашем кластере будет выполнять этот процессор и, таким образом, получить только один выполненный запрос.

+0

Хорошо, теперь как я могу использовать стратегию расписания crontab? – ozw1z5rd

+1

Это открытая проблема в Jira: https://issues.apache.org/jira/browse/NIFI-401 – mattyb

+0

да, это действительно работает, но в этом случае я теряю стратегию планирования cron. Это способ вернуть его? ? – ozw1z5rd