Как управлять состоянием ожидания в процессоре Nifi ExecuteSparkINteractive? - PullRequest
2 голосов
/ 23 июня 2019

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

Заранее спасибо!

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

Нет кода как такового для этой проблемы, поскольку Nifi предоставляет флажки и контроллер соединения между процессорами.

Я передал управление от процессора ExecuteSparkInteractive процессу RouteOnAttribute для условий успеха и сбоя, а также для состояния ожидания, но код искры не выполняется во время состояния ожидания.

Код Spark должен выполняться во время состояния ожидания, а затем он должен направлять к успеху и неудаче.

1 Ответ

0 голосов
/ 24 июня 2019

Я выяснил цель состояния ожидания в процессоре ExecuteSparkInteractive.

Всякий раз, когда элемент управления / файл проходит через интерактивный процессор Execute spark, он выполняет код искры из этого процессора, но ищет доступный сеанс Livy Spark, запущенный нагруппа пряжи сначала.Если не доступен ни один из сеансов Livy Spark (возможно, в этих сеансах запущены другие процессы), управление переходит в состояние ожидания.

В идеале процессоры ExecuteSparkInteractive ожидают, что сеанс Livy Spark будет доступен для выполнения кода.Вот почему код не выполняется, если состояние «ожидания» не обрабатывается.

Чтобы решить эту проблему, я вызвал ExecuteSparkInteractive к себе в состоянии «ожидания», по сути, возвращая элемент управления назад к тому же процессору, чтобы запуститькод зажигания, когда сеанс Livy доступен для процессора.Этот подход решил мою проблему.

Я приложил скриншот моего шаблона для справки.enter image description here

...