Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for Apache Spark™
  • Начало работы
    • Все инструкции
      • Информация об имеющихся кластерах
      • Создание кластера
      • Подключение к кластеру
      • Изменение кластера
      • Остановка и запуск кластера
      • Удаление кластера
  • Управление доступом
  • Правила тарификации
  • Метрики Yandex Monitoring
  • Справочник Terraform
  • История изменений

В этой статье:

  • Роли для создания кластера
  • Создать кластер
  1. Пошаговые инструкции
  2. Кластеры
  3. Создание кластера

Создание кластера Apache Spark™

Статья создана
Yandex Cloud
Улучшена
kvendingoldo
Обновлена 22 сентября 2025 г.
  • Роли для создания кластера
  • Создать кластер

Каждый кластер Apache Spark™ содержит вычислительные ресурсы, на которых запускаются Spark-приложения.

Роли для создания кластераРоли для создания кластера

Для создания кластера Apache Spark™ вашему аккаунту в Yandex Cloud нужны роли:

  • managed-spark.admin — чтобы создать кластер;
  • vpc.user — чтобы работать с сетью кластера;
  • iam.serviceAccounts.user — чтобы привязать сервисный аккаунт к кластеру.

Сервисному аккаунту кластера должны быть назначены роли managed-spark.integrationProvider и storage.editor. Это даст кластеру нужные права для работы с пользовательскими ресурсами.

О назначении ролей читайте в документации Yandex Identity and Access Management.

Создать кластерСоздать кластер

Консоль управления
Terraform
gRPC API
  1. В консоли управления выберите каталог, в котором нужно создать кластер Apache Spark™.

  2. Выберите сервис Managed Service for Apache Spark.

  3. Нажмите кнопку Создать кластер.

  4. В блоке Базовые параметры:

    1. Задайте имя кластера. Имя должно быть уникальным в рамках каталога.

    2. (Опционально) Введите описание кластера.

    3. (Опционально) Создайте метки:

      1. Нажмите кнопку Добавить метку.
      2. Введите метку в формате ключ: значение.
      3. Нажмите Enter.
    4. Выберите существующий сервисный аккаунт или создайте новый.

      Сервисному аккаунту должна быть назначена роль managed-spark.integrationProvider.

  5. В блоке Сетевые настройки выберите сеть, подсеть и группу безопасности для кластера.

  6. Задайте вычислительные ресурсы, на которых будут запускаться Spark-приложения:

    • Конфигурация драйвера — количество хостов и их класс для драйвера (driver). Может быть фиксированным или автомасштабируемым.
    • Конфигурация исполнителя — количество хостов и их класс для исполнителя (executor). Может быть фиксированным или автомасштабируемым.
  7. При необходимости задайте дополнительные настройки кластера:

    1. Pip-пакеты и Deb-пакеты — названия pip- и deb-пакетов, чтобы установить в кластер дополнительные библиотеки и приложения.

      Чтобы указать более одного пакета, нажмите кнопку Добавить.

      Формат названия пакета и выбор версии определены командой установки: pip install — для pip-пакетов, apt install — для deb-пакетов.

    2. Окно обслуживания — настройки времени технического обслуживания:

      • Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
      • Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.

      Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.

    3. Metastore-сервер — metastore-сервер, подключенный к вашему кластеру.

    4. Защита от удаления — управляет защитой кластера от непреднамеренного удаления.

    5. Чтобы использовать сервис для мониторинга приложений Spark History Server, включите настройку History Server. После создания кластера сервис будет доступен по ссылке.

    6. Настройте логирование:

      1. Включите настройку Запись логов.
      2. Выберите место записи логов:
        • Каталог — выберите каталог из списка.
        • Группа — выберите лог-группу из списка или создайте новую.
      3. Выберите Минимальный уровень логирования из списка.
  8. Нажмите кнопку Создать.

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы создать кластер Yandex Managed Service for Apache Spark™:

  1. Опишите в конфигурационном файле создаваемые ресурсы:

    • Кластер Yandex Managed Service for Apache Spark™ — описание кластера.

    • Сеть — описание облачной сети, в которой будет расположен кластер. Если подходящая сеть у вас уже есть, описывать ее повторно не нужно.

    • Подсети — описание подсетей, к которым будут подключены хосты кластера. Если подходящие подсети у вас уже есть, описывать их повторно не нужно.

    Пример структуры конфигурационного файла:

    resource "yandex_spark_cluster" "<имя_кластера>" {
      description         = "<описание_кластера>"
      name                = "<имя_кластера>"
      folder_id           = "<идентификатор_каталога>"
      service_account_id  = "<идентификатор_сервисного_аккаунта>"
      deletion_protection = <защитить_кластер_от_удаления>
    
      labels = {
        <список_меток>
      }
    
      network = {
        subnet_ids         = ["<список_идентификаторов_подсетей>"]
        security_group_ids = ["<список_идентификаторов_групп_безопасности>"]
      }
    
      config = {
        resource_pools = {
          driver = {
            resource_preset_id = "<класс_хоста>"
            size               = <фиксированное_количество_экземпляров>
          }
          executor = {
            resource_preset_id = "<класс_хоста>"
            size               = <фиксированное_количество_экземпляров>
          }
        }
      }
    
      logging = {
        enabled      = <включить_логирование>
        folder_id    = "<идентификатор_каталога>"
      }
    
    }
    
    resource "yandex_vpc_network" "<имя_сети>" {
      name = "<имя_сети>"
    }
    
    resource "yandex_vpc_subnet" "<имя_подсети>" {
      name           = "<имя_подсети>"
      zone           = "<зона_доступности>"
      network_id     = "<идентификатор_сети>"
      v4_cidr_blocks = ["<диапазон>"]
    }
    

    Где:

    • (Опционально) description — описание кластера.

    • name — имя кластера.

    • (Опционально) folder_id — идентификатор каталога. При отсутствии значения кластер будет размещен в каталоге, указанном в настройках провайдера.

    • service_account_id — идентификатор сервисного аккаунта.

    • (Опционально) deletion_protection — защита кластера от непреднамеренного удаления: true или false.

    • (Опционально) labels — список меток. Метки задаются в формате <ключ> = "<значение>".

    • subnet_ids — список идентификаторов подсетей.

    • security_group_ids — список идентификаторов групп безопасности.

    • driver — конфигурация хостов для запуска драйверов Apache Spark™. В этом блоке укажите:

      • Класс хостов в параметре resource_preset_id.
      • Количество экземпляров. Укажите фиксированное количество в параметре size или минимальное и максимальное количество для автомасштабирования в параметрах min_size и max_size.
    • executor — конфигурация хостов для запуска исполнителей Apache Spark™. В этом блоке укажите:

      • Класс хостов в параметре resource_preset_id.
      • Количество экземпляров. Укажите фиксированное количество в параметре size или минимальное и максимальное количество для автомасштабирования в параметрах min_size и max_size.
    • logging — параметры логирования. Сгенерированные компонентами Apache Spark™ логи будут отправляться в Yandex Cloud Logging. Для включения логирования:

      • Установите значение enabled = true.

      • Задайте одно из двух мест хранения логов:

        • folder_id — идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога.
        • log_group_id — идентификатор пользовательской лог-группы. Логи будут записываться в нее.
  2. При необходимости задайте дополнительные настройки:

    • Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), добавьте к описанию кластера блок maintenance_window:

      resource "yandex_spark_cluster" "<имя_кластера>" {
        ...
        maintenance_window {
          type = <тип_технического_обслуживания>
          day  = <день_недели>
          hour = <час_дня>
        }
        ...
      }
      

      Где:

      • type — тип технического обслуживания. Принимает значения:
        • ANYTIME — в любое время.
        • WEEKLY — по расписанию.
      • day — день недели для типа WEEKLY: MON, TUE, WED, THU, FRI, SAT или SUN.
      • hour — час дня по UTC для типа WEEKLY: от 1 до 24.
    • Чтобы включить сервис Apache Spark™ History Server, добавьте в описание конфигурации кластера блок history_server:

      resource "yandex_spark_cluster" "<имя_кластера>" {
      ...
        config = {
        ...
          history_server = {
            enabled = true
          }
        }
      }
      
    • Чтобы подключить к вашему кластеру сервер Apache Hive™ Metastore, добавьте в описание конфигурации кластера блок metastore:

      resource "yandex_spark_cluster" "<имя_кластера>" {
      ...
        config = {
        ...
          metastore = {
            cluster_id = "<идентификатор_кластера_metastore>"
          }
        }
      }
      
    • Чтобы подключить дополнительные deb- и pip-пакеты для запуска заданий Apache Spark™, добавьте в описание конфигурации кластера блок dependencies:

      resource "yandex_spark_cluster" "<имя_кластера>" {
      ...
        config = {
        ...
          dependencies = {
            deb_packages = ["<список_deb-пакетов>"]
            pip_packages = ["<список_pip-пакетов>"]
          }
        }
      }
      

      Где deb_packages и pip_packages — названия пакетов. Их формат определяет команда установки: apt install — для deb-пакетов, pip install — для pip-пакетов.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Создайте кластер Yandex Managed Service for Apache Spark™.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

Подробнее см. в документации провайдера Terraform.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Создайте файл body.json и добавьте в него следующее содержимое:

    {
      "folder_id": "<идентификатор_каталога>",
      "name": "<имя_кластера>",
      "description": "<описание_кластера>",
      "labels": { <список_меток> },
      "config": {
        "resource_pools": {
          "driver": {
            "resource_preset_id": "<идентификатор_ресурсов>",
            "scale_policy": {
              "fixed_scale": {
                "size": "<количество_экземпляров>"
              }
            }
          },
          "executor": {
            "resource_preset_id": "<идентификатор_ресурсов>",
            "scale_policy": {
              "auto_scale": {
                "min_size": "<минимальное_количество_экземпляров>",
                "max_size": "<максимальное_количество_экземпляров>"
              }
            }
          }
        },
        "history_server": {
          "enabled": <использование_Apache_Spark_History_Server>
        },
        "dependencies": {
          "pip_packages": [ <список_pip-пакетов> ],
          "deb_packages": [ <список_deb-пакетов> ]
        },
        "metastore": {
          "cluster_id": "<идентификатор_кластера>"
        }
      },
      "network": {
        "subnet_ids": [ <список_идентификаторов_подсетей> ],
        "security_group_ids": [ <список_идентификаторов_групп_безопасности> ]
      },
      "deletion_protection": <защита_от_удаления>,
      "service_account_id": "<идентификатор_сервисного_аккаунта>",
      "logging": {
        "enabled": <использование_логирования>,
        "folder_id": "<идентификатор_каталога>"
      }
    }
    

    Где:

    • folder_id — идентификатор каталога. Его можно запросить со списком каталогов в облаке.

    • name — имя кластера.

    • description — описание кластера.

    • labels — список меток. Метки задаются в формате "<ключ>": "<значение>".

    • config — конфигурация кластера:

      • resource_pools — конфигурация пулов ресурсов:

        • driver — конфигурация хостов для запуска драйверов Apache Spark™.

          • resource_preset_id — класс хостов драйвера.

          • scale_policy — политика масштабирования групп хостов для драйвера:

            • fixed_scale — фиксированная политика масштабирования.

              • size — количество хостов для драйвера.
            • auto_scale — автоматическая политика масштабирования.

              • min_size — минимальное количество хостов для драйвера.
              • max_size — максимальное количество для драйвера.

              Укажите один из двух параметров: fixed_scale либо auto_scale.

        • executor — конфигурация хостов для запуска исполнителей Apache Spark™.

          • resource_preset_id — класс хостов исполнителя.

          • scale_policy — политика масштабирования групп хостов для исполнителя:

            • fixed_scale — фиксированная политика масштабирования.

              • size — количество хостов для исполнителя.
            • auto_scale — автоматическая политика масштабирования.

              • min_size — минимальное количество хостов для исполнителя.
              • max_size — максимальное количество для исполнителя.

              Укажите один из двух параметров: fixed_scale либо auto_scale.

        • history_server — параметры сервера истории.

          • enabled — флаг включения сервера истории. Позволяет использовать сервис для мониторинга приложений Spark History Server.
        • dependencies — списки пакетов, которые позволяют установить в кластер дополнительные библиотеки и приложения.

          • pip_packages — список pip-пакетов.
          • deb_packages — список deb-пакетов.

          Формат названия пакета и выбор версии определены командой установки: pip install — для pip-пакетов, apt install — для deb-пакетов.

        • metastore — параметры метахранилища.

          • cluster_id — идентификатор кластера Apache Hive™ Metastore.
      • network — сетевые настройки:

        • subnet_ids — список идентификаторов подсетей.
        • security_group_ids — список идентификаторов групп безопасности.
      • deletion_protection — позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения: true или false.

        Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.

      • service_account_id — идентификатор сервисного аккаунта.

      • logging — параметры логирования:

        • enabled — позволяет включить логирование. Логи, сгенерированные Spark-приложениями, будут отправляться в Yandex Cloud Logging. Возможные значения: true или false.
        • folder_id — идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога.
        • log_group_id — идентификатор пользовательской лог-группы. Логи будут записываться в нее.

        Укажите один из двух параметров: folder_id либо log_group_id.

  4. Воспользуйтесь вызовом ClusterService/Create и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/spark/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ \
        spark.api.yandexcloud.kz:443 \
        yandex.cloud.spark.v1.ClusterService.Create \
        < body.json
    
  5. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Была ли статья полезна?

Предыдущая
Информация об имеющихся кластерах
Следующая
Подключение к кластеру
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»