SQOOP se utiliza básicamente para transferir datos desde bases de datos relacionales como MySQL, Oracle a almacenes de datos como Hadoop HDFS (Hadoop File System). Por lo tanto, cuando se transfieren datos de una base de datos relacional a HDFS , decimos que estamos importando datos. De lo contrario, cuando transferimos datos de HDFS a bases de datos relacionales, decimos que estamos exportando datos.
Nota: para importar o exportar, el orden de las columnas tanto en MySQL como en Hive debe ser el mismo.
Importación de datos de MySQL a HDFS
Para almacenar datos en HDFS, utilizamos Apache Hive, que proporciona una interfaz similar a SQL entre el usuario y el sistema de archivos distribuidos de Hadoop (HDFS) que integra Hadoop. Realizamos los siguientes pasos:
Paso 1: Iniciar sesión en MySQL
mysql -u root -pcloudera
Paso 2: Cree una base de datos y una tabla e inserte datos.
crear bases de datos geeksforgeeeks;
crear tabla geeksforgeeeks.geeksforgeeks(nombre_autor varchar(65), número_total_de_artículos int, número_teléfono int, dirección varchar(65));
insertar en los valores de geeksforgeeks («Rohan», 10,123456789, «Lucknow»);
Paso 3: Cree una base de datos y una tabla en la colmena donde se deben importar los datos.
crear tabla geeks_hive_table(name string, total_articles int, phone_no int, address string) formato de fila campos delimitados terminados por ‘,’;
Paso 4: Ejecute debajo del comando de importación en Hadoop.
sqoop import --connect \ jdbc:mysql://127.0.0.1:3306/database_name_in_mysql \ --username root --password cloudera \ --table table_name_in_mysql \ --hive-import --hive-table database_name_in_hive.table_name_in_hive \ --m 1
En el código anterior, se deben tener en cuenta las siguientes cosas.
- 127.0.0.1 es la dirección IP del host local.
- 3306 es el número de puerto para MySQL.
- m es el número de mapeadores
Paso 5: registre la sección si los datos se importaron correctamente o no.
Exportación de datos de HDFS a MySQL
Para exportar datos a MySQL desde HDFS, realice los siguientes pasos:
Paso 1: Cree una base de datos y una tabla en la colmena.
crear tabla hive_table_export(string de nombre, string de empresa, int de teléfono, int de edad) campos delimitados en formato de fila terminados en ‘,’;
Paso 2: Inserte datos en la tabla Hive.
insert into hive_table_export values("Ritik","Amazon",234567891,35);
Paso 3: cree una base de datos y una tabla en MySQL en la que se deben exportar los datos.
Paso 4: Ejecute el siguiente comando en Hadoop.
sqoop export --connect \ jdbc:mysql://127.0.0.1:3306/database_name_in_mysql \ --table table_name_in_mysql \ --username root --password cloudera \ --export-dir /user/hive/warehouse/hive_database_name.db/table_name_in_hive \ --m 1 \ -- driver com.mysql.jdbc.Driver --input-fields-terminated-by ','
En el código anterior, se deben tener en cuenta las siguientes cosas.
- 127.0.0.1 es la dirección IP del host local.
- 3306 es el número de puerto para MySQL.
- En el caso de exportar datos, se debe especificar la ruta completa a la tabla
- m es el número de mapeadores
Paso 5: registre MySQL si los datos se exportaron correctamente o no.
Publicación traducida automáticamente
Artículo escrito por rohanchopra96 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA