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

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

  • Настройте свойства компонентов для работы с Apache Iceberg™
  • Пример использования Apache Iceberg™
  1. Пошаговые инструкции
  2. Сервисы Apache и другие сторонние сервисы
  3. Настройка Apache Iceberg™

Настройка Apache Iceberg™ в кластере Yandex Data Processing

Статья создана
Yandex Cloud
Обновлена 13 октября 2025 г.
  • Настройте свойства компонентов для работы с Apache Iceberg™
  • Пример использования Apache Iceberg™

Yandex Data Processing версии 2.0 и выше поддерживает использование таблиц Apache Iceberg™ совместно с движком Apache Spark™.

Подробную информацию об Apache Iceberg™ см. в разделе Apache Iceberg™ в Yandex Data Processing и в официальной документации.

Примечание

Apache Iceberg™ не является частью сервиса Yandex Data Processing и не сопровождается командой разработки и службой поддержки Yandex Cloud, а его использование не входит в условия использования Yandex Data Processing.

Настройте свойства компонентов для работы с Apache Iceberg™Настройте свойства компонентов для работы с Apache Iceberg™

  1. Установите свойство spark:spark.sql.extensions в значение org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions. Это можно сделать как на уровне кластера, так и на уровне отдельного задания.

  2. Добавьте библиотеки Apache Iceberg™ в зависимости кластера или отдельного задания. Версии библиотек должны быть совместимы с версией Yandex Data Processing.

    Образ 2.0.x
    Образы 2.1.0–2.1.3
    Образы 2.1.4–2.1.x
    Образ 2.2.x

    Чтобы добавить библиотеки требуемых версий, воспользуйтесь одним из способов:

    • Настройте доступ к репозиторию Maven и установите свойство spark:spark.jars.packages в значение org.apache.iceberg:iceberg-spark-runtime-3.0_2.12:1.0.0.

      Настроить доступ к Maven можно двумя способами:

      • В группе безопасности кластера разрешите сетевой доступ к репозиторию Maven Central.
      • Настройте альтернативный репозиторий Maven и разрешите трафик к нему в группе безопасности кластера.
    • Скачайте файл библиотеки iceberg-spark-runtime-3.0_2.12-1.0.0.jar и предоставьте доступ к нему одним из способов:

      • Сохраните файл в бакет Yandex Object Storage и передайте URL файла в свойстве spark:spark.jars.

        URL файла имеет формат s3a://<имя_бакета>/<путь_к_файлу>.

        Этот бакет должен быть указан в настройках кластера. Сервисный аккаунт кластера должен иметь доступ на чтение из бакета.

      • Скопируйте файл на все узлы кластера вручную или с помощью скриптов инициализации и передайте полный путь к файлу в свойствах spark:spark.driver.extraClassPath и spark:spark.executor.extraClassPath.

    Чтобы добавить библиотеки требуемых версий, воспользуйтесь одним из способов:

    • Настройте доступ к репозиторию Maven и установите свойство spark:spark.jars.packages в значение org.apache.iceberg:iceberg-spark-runtime-3.2_2.12-1.4.3.

      Настроить доступ к Maven можно двумя способами:

      • В группе безопасности кластера разрешите сетевой доступ к репозиторию Maven Central.
      • Настройте альтернативный репозиторий Maven и разрешите трафик к нему в группе безопасности кластера.
    • Скачайте файл библиотеки iceberg-spark-runtime-3.2_2.12-1.4.3.jar и предоставьте доступ к нему одним из способов:

      • Сохраните файл в бакет Yandex Object Storage и передайте URL файла в свойстве spark:spark.jars.

        URL файла имеет формат s3a://<имя_бакета>/<путь_к_файлу>.

        Этот бакет должен быть указан в настройках кластера. Сервисный аккаунт кластера должен иметь доступ на чтение из бакета.

      • Скопируйте файл на все узлы кластера вручную или с помощью скриптов инициализации и передайте полный путь к файлу в свойствах spark:spark.driver.extraClassPath и spark:spark.executor.extraClassPath.

    Чтобы добавить библиотеки требуемых версий, воспользуйтесь одним из способов:

    • Настройте доступ к репозиторию Maven и установите свойство spark:spark.jars.packages в значение org.apache.iceberg:iceberg-spark-runtime-3.3_2.12:1.5.2.

      Настроить доступ к Maven можно двумя способами:

      • В группе безопасности кластера разрешите сетевой доступ к репозиторию Maven Central.
      • Настройте альтернативный репозиторий Maven и разрешите трафик к нему в группе безопасности кластера.
    • Скачайте файл библиотеки iceberg-spark-runtime-3.3_2.12-1.5.2.jar и предоставьте доступ к нему одним из способов:

      • Сохраните файл в бакет Yandex Object Storage и передайте URL файла в свойстве spark:spark.jars.

        URL файла имеет формат s3a://<имя_бакета>/<путь_к_файлу>.

        Этот бакет должен быть указан в настройках кластера. Сервисный аккаунт кластера должен иметь доступ на чтение из бакета.

      • Скопируйте файл на все узлы кластера вручную или с помощью скриптов инициализации и передайте полный путь к файлу в свойствах spark:spark.driver.extraClassPath и spark:spark.executor.extraClassPath.

    Чтобы добавить библиотеки требуемых версий, воспользуйтесь одним из способов:

    • Настройте доступ к репозиторию Maven и установите свойство spark:spark.jars.packages в значение org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.5.2.

      Настроить доступ к Maven можно двумя способами:

      • В группе безопасности кластера разрешите сетевой доступ к репозиторию Maven Central.
      • Настройте альтернативный репозиторий Maven и разрешите трафик к нему в группе безопасности кластера.
    • Скачайте файл библиотеки iceberg-spark-runtime-3.5_2.12-1.5.2.jar и предоставьте доступ к нему одним из способов:

      • Сохраните файл в бакет Yandex Object Storage и передайте URL файла в свойстве spark:spark.jars.

        URL файла имеет формат s3a://<имя_бакета>/<путь_к_файлу>.

        Этот бакет должен быть указан в настройках кластера. Сервисный аккаунт кластера должен иметь доступ на чтение из бакета.

      • Скопируйте файл на все узлы кластера вручную или с помощью скриптов инициализации и передайте полный путь к файлу в свойствах spark:spark.driver.extraClassPath и spark:spark.executor.extraClassPath.

Теперь вы можете использовать Apache Iceberg™ в кластере Yandex Data Processing.

Пример использования Apache Iceberg™Пример использования Apache Iceberg™

Пример проверялся в кластере Yandex Data Processing версии 2.0, в котором:

  • Установлены компоненты Spark и Hadoop.
  • Подключен бакет Object Storage, и сервисный аккаунт кластера имеет права на чтение и запись в этом бакете.
  • Настроен доступ к репозиторию Maven Central.
  • Необходимые свойства компонентов настроены так, чтобы библиотеки Apache Iceberg™ загружались из Maven Central.

Чтобы создать таблицу в формате Apache Iceberg™ и начать работать с ней:

  1. Укажите настройки каталога, в котором будет находиться таблица.

    Apache Iceberg™ оперирует таблицами на уровне отдельных каталогов. Настройки каталога указываются на уровне отдельного каталога, нельзя указать настройки для всех каталогов сразу.

    Чтобы настроить каталог sample типа Hadoop, установите следующие свойства на уровне кластера или на уровне отдельного задания:

    • Свойство spark:spark.sql.catalog.sample со значением org.apache.iceberg.spark.SparkCatalog.

    • Свойство spark:spark.sql.catalog.sample.type со значением hadoop.

    • Свойство spark:spark.sql.catalog.sample.warehouse со значением s3a://<имя_бакета>/warehouse/.

      Данные таблиц будут храниться в бакете по пути warehouse/.

    Подробнее о свойствах, влияющих на настройки каталога, см. в документации Apache Iceberg™.

  2. Подключитесь по SSH к хосту-мастеру кластера Yandex Data Processing.

  3. Запустите сессию Spark SQL:

    spark-sql
    

    Все дальнейшие действия будут выполняться в рамках этой сессии.

  4. Создайте базу данных db в каталоге sample:

    CREATE DATABASE sample.db;
    
  5. Переключитесь на базу данных db в каталоге sample:

    USE sample.db;
    
  6. Создайте таблицу mytable, состоящую из двух колонок:

    CREATE TABLE mytable (id bigint, data string) USING iceberg;
    
  7. Посмотрите сведения о таблице:

    DESC FORMATTED mytable;
    

    Пример результата:

    id      bigint
    data    string
    
    # Partitioning
    Not partitioned
    
    # Detailed Table Information
    Name    sample.db.mytable
    Location        s3a://<имя_бакета>/warehouse/db/mytable
    Provider        iceberg
    Owner   ubuntu
    Table Properties        [current-snapshot-id=none,format=iceberg/parquet]
    
  8. Вставьте несколько записей в таблицу:

    INSERT INTO mytable VALUES (1, 'a'), (2, 'b'), (3, 'c');
    
  9. Выполните тестовый запрос к таблице:

    SELECT count(1), data FROM mytable GROUP BY data;
    

    Пример результата:

    1       a
    1       b
    1       c
    

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

Предыдущая
Использование Sqoop
Следующая
Настройка Delta Lake в однокластерном режиме
Проект Яндекса
© 2025 ООО «Яндекс.Облако»