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

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

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

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


person Ajit Bhingarkar    schedule 10.09.2018    source источник


Ответы (3)


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

person Sivaprasanna Sethuraman    schedule 10.09.2018
comment
Спасибо, Шива. Изучение также StreamSets. - person Ajit Bhingarkar; 11.09.2018

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

  • adls2-oauth2-токен-провайдер-1.0.jar
  • лазурные данные-озеро-магазин-SDK-2.0.4-SNAPSHOT.jar
  • hadoop-лазурный-datalake-2.0.0-SNAPSHOT.jar
  • Джексон-ядро-2.2.3.jar
  • okhttp-2.4.0.jar
  • okio-1.4.0.jar

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

person Hauke Mallow    schedule 11.09.2018
comment
Спасибо, Хауке. Активно рассматривая StreamSets, ADF на данный момент не вариант. - person Ajit Bhingarkar; 11.09.2018

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

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

  1. Настроен ли ADLS Gen1 (ADLS был переименован в ADLS Gen1)
  2. Дополнительно настройте аутентификацию OAUTH для своей учетной записи ADLS. См. здесь
  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), созданные ранее. шаг, как показано ниже. введите описание изображения здесь

  5. Обновите вышестоящие процессоры и протестируйте.
person Krishnan    schedule 11.09.2018
comment
Krishnan, спасибо, но это похоже на взлом. Я бы хотел дождаться официальной поддержки ADLS без какой-либо зависимости от какого-либо дистрибутива Hadoop. - person Ajit Bhingarkar; 12.09.2018