Установка необходимых клиентов на воркеры 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

Существует два основных подхода к решению этой проблемы:

Если оба кластера ADO и ADH доступны в ADCM, рекомендуется устанавливать клиент Spark через ADCM.

Установка клиента Spark через ADCM

ADCM поддерживает совместное использование хостов между кластерами с помощью механизма subhost.

Подхост (subhost) — это представление физического хоста в другом кластере, которое позволяет устанавливать компоненты из нескольких кластеров на одном и том же хосте.

Чтобы установить клиент Spark на хосты ADO через ADCM:

  1. На странице Hosts для каждого хоста ADO создайте подхост. При создании подхоста выберите нужный кластер ADH в поле Cluster.

    Создание подхоста и привязка к кластеру ADH
    Создание подхоста и привязка к кластеру ADH
  2. На странице Clusters выберите нужный кластер ADH.

  3. Перейдите на вкладку Services.

  4. Выберите действие Add/Remove components для Spark и добавьте клиент Spark на созданные подхосты ADO.

После установки бинарные файлы Spark становятся доступны для воркеров Airflow.

Установка клиента Spark вручную

При ручной установке компонентов и библиотек Spark убедитесь, что все хосты с воркерами Airflow содержат все необходимое из таблицы ниже.

Компонент Назначение Путь

Бинарные файлы Spark

Использование CLI

/opt/spark/bin/spark3-submit

PySpark

Интеграция с Python

pip install pyspark (внутри виртуальной среды Airflow)

Конфигурационные файлы

Настройки среды выполнения Spark

/opt/spark/conf/spark-defaults.conf

Зависимости

Необходимые библиотеки

/opt/spark/jars

Для установки компонентов Spark:

  1. Подключитесь к каждому хосту с воркером Airflow по SSH.

  2. Установите бинарные файлы Spark в нужную директорию (например, /opt/spark).

  3. Установите PySpark в окружение Airflow.

  4. Настройте конфигурацию Spark (spark-defaults.conf, spark-env.sh).

  5. Обновите подключение Airflow spark_default, указав установленный бинарный файл.

Дополнительную информацию о ручной установке библиотек Spark можно получить в документации соответствующей версии Spark.

Настройка Airflow

Чтобы настроить Airflow для работы с ADH Spark:

  1. Откройте веб-интерфейс Airflow.

  2. В верхнем меню перейдите в Admin → Connections.

  3. Нажмите Add a new record и заполните поля:

    • Connection Id — spark_default,

    • Connection Type — Spark;

    • Deploy mode — client;

    • Spark binary — spark-submit.

  4. Нажмите Save.

Добавление подключения spark-default в веб-интерфейсе Airflow
Добавление подключения spark-default в веб-интерфейсе Airflow
Добавление подключения spark-default в веб-интерфейсе Airflow
Добавление подключения spark-default в Airflow web UI
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней