Как программно установить библиотеки Maven в кластер с помощью сценариев инициализации?

Пробовал какое-то время, и я уверен, что решение достаточно простое, просто изо всех сил пытаюсь его найти. Я новичок, так что будь со мной полегче..!

Это необходимо сделать с помощью готового сценария инициализации, который затем выбирается в пользовательском интерфейсе при настройке кластера.

Я пытаюсь установить com.microsoft.azure:azure-eventhubs-spark_2.12:2.3.18 в кластер Azure Databricks. Следуя примеру документации (это установка драйвера postgresql), они создают сценарий инициализации, используя следующую команду:

dbutils.fs.put("/databricks/scripts/postgresql-install.sh","""
#!/bin/bash
wget --quiet -O /mnt/driver-daemon/jars/postgresql-42.2.2.jar https://repo1.maven.org/maven2/org/postgresql/postgresql/42.2.2/postgresql-42.2.2.jar""", True)```

Мой вопрос: что такое раздел /mnt/driver-daemon/jars/postgresql-42.2.2.jar этого кода? И что мне нужно сделать, чтобы это сработало в моей ситуации?

Спасибо заранее.

Не удалось выполнить цель org.apache.maven.plugins
Не удалось выполнить цель org.apache.maven.plugins
Опишу, что когда я только начинал изучать Maven, у меня не получалось компилировать и упаковывать.
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
1
0
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

/mnt/driver-daemon/jars/postgresql-42.2.2.jar вот выходной путь, куда будет помещен jar-файл. Но это не имеет смысла, так как эта банка не будет помещена в CLASSPATH и не будет найдена Spark. Банки необходимо поместить в каталог /databricks/jars/, где они будут автоматически подобраны Spark.

Но этот способ со скачиванием jar-файлов работает только для jar-ов без зависимостей, а для библиотек типа EventHubs Connector это не так — они не будут работать, если не загружены и зависимости. Вместо этого лучше использовать Пользовательский интерфейс кластера или Libraries API (или Jobs API для вакансий) — с этими методами также будут извлечены все зависимости.

P.S. Но на самом деле вместо коннектора EventHubs лучше использовать протокол Kafka, который также поддерживается EventHubs. Тому есть несколько причин:

  • Это лучше с точки зрения производительности
  • Это лучше с точки зрения стабильности
  • Коннектор Kafka входит в состав DBR, так что ничего дополнительно устанавливать не нужно

Вы можете прочитать, как использовать коннектор Spark + EventHubs + Kafka в файле Документация по концентраторам событий.

Спасибо, Алекс, это ценно.

Wmerrick3 10.05.2022 14:43

Другие вопросы по теме