Как я могу использовать NiFi для чтения / записи напрямую из ADLS без HDInsight - PullRequest
0 голосов
/ 10 сентября 2018

Мы хотели бы использовать NiFi для соединения с ADLS (используя PutHDFS и FetchHDFS) без необходимости устанавливать HDInsight. Впоследствии мы хотим использовать Azure DataBricks для запуска заданий Spark и надеемся, что это можно сделать с помощью процессора ExecuteSparkInteractive от NiFi. Из всех примеров, которые я смог найти, неизменно требуется HDP или HDInsight.

Может кто-нибудь поделиться указателями, как это можно сделать без HDP или HDInsight?

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

Ответы [ 3 ]

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

Я сделал тестовую настройку больше года назад. Процессор PutHDFS работал с некоторыми дополнительными ресурсами classpath. Требуются следующие зависимости:

  • adls2-oauth2-токен-провайдера 1.0.jar
  • лазурь-данных озерно-магазин-СДК-2.0.4-SNAPSHOT.jar
  • Hadoop-лазурь-datalake-2.0.0-SNAPSHOT.jar
  • ДЖЕКСОН-ядро-2.2.3.jar
  • okhttp-2.4.0.jar
  • Окио-1.4.0.jar

См. Также следующий Блог для получения более подробной информации. Вы можете скопировать libs, core-site.xml и hdfs-site.xml из установки HDInsight на компьютер, на котором работает NiFi. Вы также должны правильно установить dfs.adls.home.mountpoint, направив его в корневой каталог или каталог данных. Имейте в виду, что это официально не поддерживается, поэтому phps. вы также должны рассмотреть Azure Data Factory или StreamSets в качестве опции для Ingest.

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

PutHDFS не ожидает классического кластера hadoop в первую очередь. Он ожидает core-site.xml только по общепринятым причинам. Как вы увидите в приведенном ниже примере, минималистский файл конфигурации для работы PutHDFS с ADLS.

Использовать процессор NiFi PutHDFS для входа в ADLS просто. Следующие шаги приведут к решению

  1. Настройка ADLS Gen1 (ADLS переименована в ADLS Gen1)
  2. Дополнительно для вашей учетной записи ADLS настроена OAUTH-аутентификация. Смотри здесь
  3. Создайте пустой файл core-site.xml для настройки процессора PuHDFS. Обновите файл core-site.xml со следующими свойствами (в этом примере я использую режим ключей клиента для аутентификации)
    fs.defaultFS = adl://<yourADLname>.azuredatalakestore.net
    fs.adl.oauth2.access.token.provider.type = ClientCredential
    fs.adl.oauth2.refresh.url = <Your Azure refresh endpoint>
    fs.adl.oauth2.client.id = <Your application id>
    fs.adl.oauth2.credential = <Your key>

  4. Обновите процессор NiFi PutHDFS, чтобы он ссылался на core-site.xml и дополнительные библиотеки ADLS (hadoop-azure-datalake-3.1.1.jar и azure-data-lake-store-sdk-2.3.1 .jar) создан в предыдущем шаге, как показано ниже. enter image description here

  5. Обновите вышестоящие процессоры и протестируйте.
0 голосов
/ 10 сентября 2018

Насколько я могу судить, ADLS не будет работать (или работать вообще) с процессорами *HDFS, доступными в Apache NiFi. Был сделан запрос функции - NIFI-4360 и последующий PR, поднятый для того же самого - # 2158 , но он был кратко рассмотрен, но в настоящее время нет большого прогресса. Вы можете раскошелиться на это или скопировать эту кодовую базу и, надеюсь, просмотреть ее.

...