Импорт и экспорт данных с помощью SQOOP

Опубликовано: 18 Февраля, 2022

SQOOP в основном используется для передачи данных из реляционных баз данных, таких как MySQL, Oracle, в хранилища данных, такие как Hadoop HDFS (файловая система Hadoop). Таким образом, когда данные передаются из реляционной базы данных в HDFS, мы говорим, что импортируем данные. В противном случае, когда мы переносим данные из HDFS в реляционные базы данных, мы говорим, что экспортируем данные.

Примечание. Для импорта или экспорта порядок столбцов в MySQL и Hive должен быть одинаковым.

Импорт данных из MySQL в HDFS

Для хранения данных в HDFS мы используем Apache Hive, который предоставляет SQL-подобный интерфейс между пользователем и распределенной файловой системой Hadoop (HDFS), которая интегрирует Hadoop. Выполняем следующие действия:

Шаг 1. Войдите в MySQL

 mysql -u корень -pcloudera

Вход в MySQL

Шаг 2: Создайте базу данных и таблицу и вставьте данные.

create database geeksforgeeeks;
create table geeksforgeeeks.geeksforgeeks(author_name varchar(65), total_no_of_articles int, phone_no int, address varchar(65));
insert into geeksforgeeks values(“Rohan”,10,123456789,”Lucknow”);

Шаг 3. Создайте базу данных и таблицу в улье, куда следует импортировать данные.

create table geeks_hive_table(name string, total_articles int, phone_no int, address string) row format delimited fields terminated by ‘,’;

База данных улья: geeks_hive и таблица улей: geeks_hive_table

Шаг 4: Выполните ниже команду импорта в Hadoop.

 sqoop import --connect 
jdbc: mysql: //127.0.0.1: 3306 / имя_базы_данных_в_mysql 
 --username root --password cloudera 
 --table имя_таблицы_в_mysql 
 --hive-import --hive-table имя_базы_данных_in_hive.name_table_in_hive 
 --м 1 

SQOOP Команда для импорта данных

В приведенном выше коде следует отметить следующее.

  • 127.0.0.1 - это IP-адрес локального хоста.
  • 3306 - это номер порта для MySQL.
  • m - количество картографов

Шаг 5: Отметьте куст, если данные были импортированы успешно или нет.

Данные успешно импортированы в куст.

Экспорт данных из HDFS в MySQL

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

Шаг 1. Создайте базу данных и таблицу в улье.

create table hive_table_export(name string,company string, phone int, age int) row format delimited fields terminated by ‘,’;

База данных улья: hive_export и таблица улей: hive_table_export

Шаг 2: Вставьте данные в таблицу улья.

 вставить в значения hive_table_export («Ритик», «Амазонка», 234567891,35);

Данные в таблице Hive

Шаг 3: Создайте базу данных и таблицу в MySQL, в которые следует экспортировать данные.

База данных MySQL: mysql_export и таблица MySQL: mysql_table_export

Шаг 4: Выполните следующую команду в Hadoop.

 sqoop экспорт --connect 
jdbc: mysql: //127.0.0.1: 3306 / имя_базы_данных_в_mysql 
 --table имя_таблицы_в_mysql 
 --username root --password cloudera 
 --export-dir /user/hive/warehouse/hive_database_name.db/table_name_in_hive 
 --m 1 
 - драйвер com.mysql.jdbc.Driver
 - поля ввода завершаются через ','

Команда SQOOP для экспорта данных

В приведенном выше коде следует отметить следующее.

  • 127.0.0.1 - это IP-адрес локального хоста.
  • 3306 - это номер порта для MySQL.
  • В случае экспорта данных необходимо указать полный путь к таблице.
  • m - количество картографов

Шаг 5: Зарегистрируйте MySQL, если данные были экспортированы успешно или нет.

Данные успешно экспортированы в MySQL