2017-01-04 11 views
1

Я использовал NIFI в автономной версии, и теперь, когда я установил кластерную версию NIFI с HDF, я хочу перенести свой DataFlow из моей автономной версии в кластерную.Migrate Dataflow NIFI

Каков наилучший способ для этого?

+0

Какой версию Nifi вы используете? – JDP10101

+0

@ JDP10101 NiFi \t 1.1.0 – azelix

ответ

4

Если у вас есть активные данные в вашем автономном Nifi, вы бы:

  • Остановите все процессоры источника и пусть ваш поток кровоточить, пока нет активных данных в любой из очередей.
  • Остановить HDF кластера
  • Остановите автономный экземпляр и копия Conf/flow.xml.gz от автономного экземпляра для каждого из узлов кластера HDF в/вар/Lib/Nifi/CONF/
  • Start ваш кластер HDF

Если вам не все равно в вашем автономном NiFi, пропустите первый шаг.

UPDATE:

Дополнительное соображение имеет дело с чувствительными свойствами (т.е. пароль полей в процессорах) ...

В nifi.properties nifi.sensitive.props.key свойство используется для шифрования чувствительной свойства в flow.xml.gz. Вы не обязаны заполнять значение для этого свойства, и если вы оставите его пустым, в коде будет введен пароль по умолчанию.

Установка HDF для Ambari заставляет вас установить значение для nifi.sensitive.props.key, поэтому, если вы не установите одинаковые значения для обоих экземпляров, тогда кластер HDF будет пытаться расшифровать значения в потоке. xml.gz, используя другой ключ, чем тот, за которым они были зашифрованы.

Инструмент nifi-toolkit (который можно загрузить с главной страницы NiFi) предлагает инструмент для переноса ключа чувствительных свойств для flow.xml.gz на новое значение.

Вот пример ...

Допустим, Nifi-1 оригинальный экземпляр Nifi и чувствительные свойства ключ для Nifi-1 установлен в «password1».

Затем вы скопировали этот flow.xml.gz в nifi-2, а ключ чувствительных свойств для nifi-2 - «password2».

Выполнение этой команды будет читать в flow.xml.gz из Nifi-1 с использованием оригинальных чувствительных свойств ключевых, и выписывать новую версию в НЕМ-2 с чувствительными свойствами зашифрованы с новым паролем:

./nifi-toolkit-1.2.0-SNAPSHOT/bin/encrypt-config.sh -f /path/to/nifi-1/conf/flow.xml.gz -g /path/to/nifi-2/conf/flow.xml.gz -s password2 -n /path/to/nifi-1/conf/nifi.properties -o /path/to/nifi-2/conf/nifi.properties -x 
  • -f является источником flow.xml.gz (Nifi-1)
  • -g является flow.xml.gz назначения (Nifi-2)
  • -s представляет новые чувствительные свойства ключ (nifi-2)
  • -n is th e source nifi.properties (nifi-1)
  • -o - пункт назначения nifi.свойства (Nifi-2)
  • -x говорит, что это только обрабатывать чувствительные свойства
+0

У меня есть это сообщение об ошибке после запуска моего кластера HDF снова: javax.crypto.BadPaddingException: pad block поврежден – azelix

+0

В вашем исходном потоке были ли у вас процессоры с чувствительными свойствами (то есть поля пароля)? –

+0

Да, у меня есть invokehttp с чувствительным полем – azelix