Пробовал какое-то время, и я уверен, что решение достаточно простое, просто изо всех сил пытаюсь его найти. Я новичок, так что будь со мной полегче..!
Это необходимо сделать с помощью готового сценария инициализации, который затем выбирается в пользовательском интерфейсе при настройке кластера.
Я пытаюсь установить 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
этого кода? И что мне нужно сделать, чтобы это сработало в моей ситуации?
Спасибо заранее.
/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. Тому есть несколько причин:
Вы можете прочитать, как использовать коннектор Spark + EventHubs + Kafka в файле Документация по концентраторам событий.
Спасибо, Алекс, это ценно.