Обновление AW¶
Технические изменения в выпуске AW 1.31¶
Изменения в prod-образах¶
Добавлены образы:
- etl-mono - единый образ для всех ETL-сервисов.
Удалены образы:
- etl-airflow - заменен на etl-mono
- etl-spark-master - заменен на etl-mono
- etl-spark-worker - заменен на etl-mono
- ml-spark-master - заменен на etl-mono
- ml-spark-worker - заменен на etl-mono
- ml-data-preview
- ml-airflow-worker - заменен на etl-mono
Изменения в топологии¶
- Вместо сервисов etl-airflow-webserver, etl-airflow-scheduler и etl-airflow-worker теперь запускается единый сервис etl-airfow;
- Вместо сервисов etl-spark-master, etl-spark-worker теперь запускается единый сервис etl-spark;
- Удалены сервисы ml-spark-master, ml-spark-worker, ml-data-preview, ml-airflow-worker. Отдельных сервисов для ML задач больше нет. Вся функциональность по работе ML-моделей запускаются в составе основных etl-сервисов.
- Сервисы ml-flow и ml-flow-db переименованы в etl-mlflow и etl-mlflow-db и перенесены из docker-compose.ml.yml в основной docker-compose.yml;
- Удалены docker-compose файлы для запуска ML-сервисов: docker-compose.ml.yml, docker-compose.ml.override.yml, docker-compose.ml.prod.yml;
Изменения в конфигурации¶
Добавлены переменные:
- ETL_AIRFLOW_WORKERS - Количество воркеров для Airflow (по умолчанию, 16)
- ETL_AIRFLOW_WORKERS_AUTOSCALE - Включает режим автоскалирования воркеров Airflow (по умолчанию, пусто). Указывается в виде двух значений, разделенных через запятую. Первое значение - макс. количество воркеров, второе - мин. количество (например, 16,8). Cистема будет стараться держать минимальное количество воркеров, увеличивая их только при нагрузке. При указании автоскалирования, значение ETL_AIRFLOW_WORKERS игнорируется
- ETL_AIRFLOW_WEBSERBER_WORKERS - Количество воркеров для web-сервера Airflow, в т.ч. для API (по умолчанию, 4)
- ETL_AIRFLOW_SCHEDULER_LOG_LEVEL - Уровень логирования у шедулера Airflow. Нужно менять только в случае отладки, по умолчанию - ERROR
- ETL_AIRFLOW_SCHEDULER_PARSING_PROCESSES - Количество процессов, которые используюся для парсинга DAG'ов (по умолчанию, 2)
- ETL_API_WORKERS - Количество web-воркеров для etl-api (по умолчанию, 1)
- ETL_DATA_PREVIEW_WORKERS - Количество web-воркеров для etl-data-preview (по умолчанию, 4)
- ETL_MLFLOW_WORKERS - Количество воркеров для web-сервера Mlflow, в т.ч. для API (по умолчанию, 4)
- ETL_MLFLOW_URL - Внутренний URL к Mlflow (по умолчанию, http://etl-mlflow). Используется при многохостовом развертывании. Данный параметр заменил MLFLOW_URL у auth-bridge
- ETL_DATA_PREVIEW_SPARK_CORES - Количество ядер, которое выделяется на Spark-задачи предпросмотра в etl-data-preview (по умолчанию, 1). Если указать *, то будут использоваться все ядра
- ETL_DATA_PREVIEW_SPARK_MEMORY - Лимит памяти, которая выделяется на Spark-задачи предпросмотра в etl-data-preview (по умолчанию, 1g). Принимает значения вида число + ("k", "m", "g" или "t") (например: 512m, 2g)
- AW_DATA_MASTER_WORKERS - Количество web-воркеров для дата-мастера (по умолчанию, 2)
- AW_DATA_MASTER_EXPORT_MODEL_DATA - Управляет возможностью выгрузки данных моделей. ALLOW/ON/TRUE (в любом регистре) - разрешено, DENY/OFF/FALSE (в любом регистре) - запрещено, любое другое непустое значение - запрещено (по умолчанию, ALLOW)
- AW_FILE_PULLER_INTERNAL_DS_S3_URL - указывает на бакет s3-хранилища, в котором размещаются файлы источников. URL заканчивается именно бакетом, без папки 'data_source' и т.п., например: http://minio_user:minio_pass@minio:9000/aw-bucket'
Удалены переменные
- MLFLOW_URL для auth-bridge (заменен на ETL_MLFLOW_URL)
Подготовка¶
- обновить awctl на последнюю версию
-
сделать рез. копию конфигурации профиля:
- в случае необходимости загрузить архив с новым релизом на сервер с awctl - выполнить рез. копирование БД AWcp $HOME/.awctl/profiles/<имя_профиля>/config.yml $HOME/.awctl/profiles/<имя_профиля>/config.yml.bak
Подготовка нового конфигурационного файла профиля¶
Т.к. кол-во сервисов в составе AW может меняться от версии к версии, при обновлении распределенной установки требуется сгенерировать распределение сервисов по серверам заново:
/opt/awctl/awctl init --preset <кол-во серверов> --release-path <путь к архиву с релизом AW> <имя профиля>
- aw_home, aw_host, aw_ssh_host, aw_user, aw_ssh_user, aw_ssh_password и т.п. для каждого сервера
- секцию env для каждого сервера, если используется
- значения with_extra_hosts, with_traefik из секции aw
Сделать это можно с помощью любого удобного текстового редактора.
Обновление AW¶
Для обновления установки AW выполните следующие действия:
-
Генерируем конфигурационные файлы для серверов:
-
Выполняем установку AW:
Если установкf выполняется из полного релизного архива (release-<версия AW>.tar) то выполнение команды вожет занять длительное время. -
Выполняем миграции: