Установка необходимых клиентов на воркеры Airflow
Обзор
Некоторые провайдеры Airflow требуют установки дополнительных инструментов непосредственно на хосты с воркерами Airflow. Например, в случае интеграции между сервисом Spark, развернутым в кластере ADH, и кластером ADO с использованием провайдера apache-airflow-providers-apache-spark (включен по умолчанию).
В сценарии интеграции ADO–ADH:
-
Airflow развернут в кластере ADO.
-
Spark развернут в кластере ADH.
-
Airflow-воркеры не являются частью кластера ADH.
При использовании CeleryExecutor задачи Airflow выполняются на хостах с воркерами. SparkSubmitOperator запускает spark-submit локально на хосте. Поэтому каждый воркер должен иметь иметь доступ к следующим ресурсам:
-
бинарные файлы Spark (
spark-submit); -
конфигурационные файлы (spark-defaults.conf, spark-env.sh);
-
необходимые зависимости (например, библиотеки Hadoop);
-
сетевой доступ к кластеру Spark.
Если клиент Spark не установлен, выполнение задачи завершится с ошибкой:
spark-submit: command not found
Существует два основных подхода к решению этой проблемы:
-
Установить клиент Spark с помощью функции совместного использования хостов (subhost) в ADCM.
-
Установить клиент Spark и другие зависимости вручную на всех хостах.
Если оба кластера ADO и ADH доступны в ADCM, рекомендуется устанавливать клиент Spark через ADCM.
Установка клиента Spark через ADCM
ADCM поддерживает совместное использование хостов между кластерами с помощью механизма subhost.
Подхост (subhost) — это представление физического хоста в другом кластере, которое позволяет устанавливать компоненты из нескольких кластеров на одном и том же хосте.
Чтобы установить клиент Spark на хосты ADO через ADCM:
-
На странице Hosts для каждого хоста ADO создайте подхост. При создании подхоста выберите нужный кластер ADH в поле Cluster.
Создание подхоста и привязка к кластеру ADH -
На странице Clusters выберите нужный кластер ADH.
-
Перейдите на вкладку Services.
-
Выберите действие Add/Remove components для Spark и добавьте клиент Spark на созданные подхосты ADO.
После установки бинарные файлы Spark становятся доступны для воркеров Airflow.
Установка клиента Spark вручную
При ручной установке компонентов и библиотек Spark убедитесь, что все хосты с воркерами Airflow содержат все необходимое из таблицы ниже.
| Компонент | Назначение | Путь |
|---|---|---|
Бинарные файлы Spark |
Использование CLI |
/opt/spark/bin/spark3-submit |
PySpark |
Интеграция с Python |
|
Конфигурационные файлы |
Настройки среды выполнения Spark |
/opt/spark/conf/spark-defaults.conf |
Зависимости |
Необходимые библиотеки |
/opt/spark/jars |
Для установки компонентов Spark:
-
Подключитесь к каждому хосту с воркером Airflow по SSH.
-
Установите бинарные файлы Spark в нужную директорию (например, /opt/spark).
-
Установите PySpark в окружение Airflow.
-
Настройте конфигурацию Spark (spark-defaults.conf, spark-env.sh).
-
Обновите подключение Airflow
spark_default, указав установленный бинарный файл.
Дополнительную информацию о ручной установке библиотек Spark можно получить в документации соответствующей версии Spark.
Настройка Airflow
Чтобы настроить Airflow для работы с ADH Spark:
-
Откройте веб-интерфейс Airflow.
-
В верхнем меню перейдите в Admin → Connections.
-
Нажмите Add a new record и заполните поля:
-
Connection Id —
spark_default, -
Connection Type —
Spark; -
Deploy mode —
client; -
Spark binary —
spark-submit.
-
-
Нажмите Save.