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

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

  • Формирование строки подключения JDBC
  • Установка JDBC-драйвера
  • Импорт с помощью Sqoop
  • В Object Storage
  • В директорию HDFS
  • В Apache Hive
  • В Apache HBase
  1. Пошаговые инструкции
  2. Сервисы Apache и другие сторонние сервисы
  3. Использование Sqoop

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

Статья создана
Yandex Cloud
Обновлена 16 января 2025 г.
  • Формирование строки подключения JDBC
  • Установка JDBC-драйвера
  • Импорт с помощью Sqoop
    • В Object Storage
    • В директорию HDFS
    • В Apache Hive
    • В Apache HBase

Импорт баз данных в кластер Yandex Data Processing из внешних источников выполняется с помощью утилиты Sqoop. Раздел содержит:

  • сведения о формировании строк подключения и установке драйверов для Sqoop;

  • команды для импорта данных с помощью Sqoop в:

    • Yandex Object Storage;
    • директорию HDFS;
    • Apache Hive;
    • Apache HBase.

Примечание

Утилита Sqoop не поддерживается для кластеров Yandex Data Processing версии 2.0 и выше. В качестве альтернативы используйте функциональные возможности Apache Spark™.

Формирование строки подключения JDBCФормирование строки подключения JDBC

Строка подключения JDBC имеет вид:

PostgreSQL
MySQL®
jdbc:postgresql://<адрес_сервера_базы_данных>:5432/<имя_базы_данных>

Для Yandex Managed Service for PostgreSQL используйте строку с особым FQDN, который указывает на хост-мастер:

jdbc:postgresql://c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:6432/<имя_базы_данных>

Идентификатор кластера можно получить со списком кластеров в каталоге.

jdbc:mysql://<адрес_сервера_базы_данных>:3306/<имя_базы_данных>

Для Yandex Managed Service for MySQL® используйте строку с особым FQDN, который указывает на хост-мастер:

jdbc:mysql://c-<идентификатор_кластера>.rw.mdb.yandexcloud.net:3306/<имя_базы_данных>

Идентификатор кластера можно получить со списком кластеров в каталоге.

Установка JDBC-драйвераУстановка JDBC-драйвера

Чтобы Sqoop мог подключиться к базе данных через строку подключения JDBC, установите JDBC-драйвер:

PostgreSQL
MySQL®

Драйвер для Yandex Managed Service for PostgreSQL предустановлен в Yandex Data Processing, дополнительных действий не требуется.

Подключитесь по SSH к хосту подкластера Yandex Data Processing для хранения данных и выполните команду:

MYSQL_VER="8.0.25" && \
wget "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-${MYSQL_VER}.tar.gz" \
    --output-document 'mysql-connector-java.tar.gz' && \
sudo tar -xf mysql-connector-java.tar.gz -C /var/lib/sqoop/ && \
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/var/lib/sqoop/mysql-connector-java-${MYSQL_VER}.jar

Примечание

Чтобы установить другую версию драйвера, измените в команде значение переменной MYSQL_VER.

Импорт с помощью SqoopИмпорт с помощью Sqoop

В Object StorageВ Object Storage

Этот тип импорта доступен, если в кластере Yandex Data Processing активирован компонент Sqoop.

Чтобы импортировать данные в бакет Object Storage:

  1. При создании или изменении кластера Yandex Data Processing укажите имя бакета для импорта в Object Storage. Убедитесь, что сервисный аккаунт Yandex Data Processing имеет права на запись в этот бакет.

  2. Сформируйте строки подключения для JDBC.

  3. Подключитесь по SSH к хосту подкластера Yandex Data Processing для хранения данных.

  4. Установите драйверы для работы Sqoop, если они еще не установлены.

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

    sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
      --connect <строка_подключения_JDBC> \
      --username <имя_пользователя_базы_данных> \
      --P \
      --table '<имя_таблицы_базы_данных>' \
      --target-dir 's3a://<имя_бакета_для_импорта>/<директория_назначения>' \
      --split-by '<столбец_таблицы>'
    

    Где --split-by — столбец таблицы, используемый для разделения.

    Важно

    Не указывайте имя существующей директории бакета.

В директорию HDFSВ директорию HDFS

Этот тип импорта доступен, если в кластере Yandex Data Processing включены сервисы:

  • HBase;
  • HDFS;
  • Sqoop;
  • Yarn;
  • Zookeeper.

Чтобы импортировать данные в директорию HDFS:

  1. Сформируйте строки подключения для JDB.

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

  3. Установите драйверы для работы Sqoop, если они еще не установлены.

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

    sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
      --connect <строка_подключения_JDBC> \
      --username <имя_пользователя_базы_данных> \
      --table '<имя_таблицы_базы_данных>' \
      --target-dir '<директория_HDFS>' \
      --P \
      --split-by '<столбец_таблицы>'
    

    Где --split-by — столбец таблицы, используемый для разделения.

    Важно

    Не указывайте имя существующей директории HDFS.

В Apache HiveВ Apache Hive

Этот тип импорта доступен, если в кластере Yandex Data Processing включены сервисы:

  • HDFS;
  • Hive;
  • Mapreduce;
  • Sqoop;
  • Yarn.

Чтобы импортировать данные в таблицу Hive:

  1. При создании или изменении кластера Yandex Data Processing добавьте в свойства кластера ключ hive:hive.execution.engine со значением mr.

  2. Сформируйте строки подключения для JDBC.

  3. Подключитесь по SSH к хосту подкластера Yandex Data Processing для хранения данных.

  4. Установите драйверы для работы Sqoop, если они еще не установлены.

  5. Создайте базу данных Hive:

    hive -e "CREATE DATABASE <имя_базы_данных_Hive>;"
    
  6. Выполните команду:

    sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
      --connect <строка_подключения_JDBC> \
      --username <имя_пользователя_исходной_базы_данных> \
      --P \
      --table '<имя_таблицы_в_исходной_базе_данных>' \
      --hive-import \
      --create-hive-table \
      --hive-database '<имя_базы_данных_Hive>' \
      --hive-table '<имя_таблицы_Hive>' \
      --split-by '<столбец_таблицы>'
    

    Где --split-by — столбец таблицы, используемый для разделения.

    Важно

    Не указывайте имя существующей таблицы Hive.

В Apache HBaseВ Apache HBase

Этот тип импорта доступен, если в кластере Yandex Data Processing включены сервисы:

  • HBase;
  • HDFS;
  • Sqoop;
  • Yarn;
  • Zookeeper.

Чтобы импортировать данные в Apache HBase:

  1. Сформируйте строки подключения для JDBC.

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

  3. Установите драйверы для работы Sqoop, если они еще не установлены.

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

    sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
      --connect <строка_подключения_JDBC> \
      --username <имя_пользователя_исходной_базы_данных> \
      --P \
      --table '<имя_таблицы_в_исходной_базе_данных>' \
      --hbase-create-table \
      --column-family '<семейство_столбцов_HBase>' \
      --hbase-table '<имя_таблицы_HBase>' \
      --split-by '<столбец_таблицы>'
    

    Где --split-by — столбец таблицы, используемый для разделения.

    Важно

    Не указывайте имя существующей таблицы HBase.

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

Предыдущая
Подключение к интерфейсам компонентов
Следующая
Настройка Apache Iceberg™
Проект Яндекса
© 2025 ООО «Яндекс.Облако»