Taller Formativo Evaluación Sqoop
Taller Formativo Evaluación Sqoop
Taller Formativo Evaluación Sqoop
Este taller de evaluación tiene como propósito que el estudiante ponga a prueba el uso de un
Clúster de Big data haciendo ingestión de una base de datos relacional a HDFS y Hive (Apache
Software Fundation)
Aprenda a usar Apache Sqoop para realizar importaciones y exportaciones entre un clúster
de Apache Hadoop en AWS EMR (Azure HDInsight) y Mysql (Azure SQL Database) o
Microsoft SQL Server . En los pasos descritos en este documento se usa el
comando sqoop directamente desde el nodo principal del clúster de Hadoop. Usaremos
SSH para conectarnos al nodo principal y ejecutar los comandos de este documento. Si
desea más información de sqoop puede ingresar a la Sqoop User Guide (v1.4.7) (apache.org)
A pesar de que Apache Hadoop es una opción natural para procesar datos no
estructurados y datos semiestructurados, como registros y archivos, es posible que
también sea necesario procesar datos estructurados almacenados en bases de
datos relacionales.
Apache Sqoop es una herramienta diseñada para transferir datos entre clústeres de
Hadoop y bases de datos relacionales. Puede usarla para importar datos desde un
sistema de administración de bases de datos relacionales (RDBMS) como SQL
Server, MySQL u Oracle en el sistema de archivos distribuidos Hadoop (HDFS),
transformar los datos de Hadoop con MapReduce o Apache Hive y, a continuación,
exportar los datos en un RDBMS. En este artículo, usará MySQl como base de
datos relacional.
Importante
Pegue la imagen
6. Creamos un usuario y password (por favor pegue aquí el script usado para crear su propio
usuario
mysql -u adiaz -p
create database retail_db;
9. Salga de Mysql una vez verificado que el usuario y el password están correctamente creados.
>exit;
10. Ahora vamos a crear una base de datos y las tablas correspondientes a retail (punto de
venta). Recuerde que debe estar en Linux y en la carpeta donde está el archivo retail_db.
Este archivo es un backup de una base de datos, la cual vamos a recuperarlas en Mysql.
1. Cd /etc/hue/conf/
2. Sudo nano hue.ini
3. CTRL W interpreters, busque MySQL [[[mysql]]] y remplace la configuración por
la siguiente: recuerde que debe poner su usuario y password
4. [[[mysql]]]
5. #name = MySQL
6. #interface = rdbms
7. name=MySQL
8. interface=sqlalchemy
9. options='{"url": "mysql://adiaz:Dclaros1@localhost:3306/"}'
Abra un navegador, ingrese a su servidor por el puerto 8888, digite un usuario (el que creó la
carpeta) y una clave y debe entrar a:
Ahora hga clicen </> y selecciones MySql
Ve a HDFS y revisemos el
MariaDB [retail_db]>
select category_name, count(product_id) from categories join products on
products.product_category_id=categories.ca
tegory_id group by category_name;
1. Ahora vamos a hacer una exportación de parte de los registros de una tabla con la condición
Where.
3. Haga un Query en Mysql para listar nombre y la ciudad de los que viven en Austin
Respuesta: ___________________ (cópiela de la imagen, ya está hecha)
Revise las otras tablas por su cuenta para conocer bien la base de datos del punto de
venta.
4. Abra otro terminal y verifiquemos la instalación y la versión de Sqoop, solo escriba sqoop y
allí aparece un texto: “running Sqoop version: XXXX (Escriba su repuesta)
5. Debemos instalar el driver para que sqoop se conecte a Mysql por Jdbc.
Vaya a la carpeta mysql-connector-java-5.1.41-bin.jar
6. Vamos a importar la base de datos así, recuerde que debe cambiar el DNS servidor y el
usuario de MySql:
(la carpeta destino no debe existir, si desea repetir el comando debe ingresar a hadoop a
ver si la carpeta ya fue creada y debe borrarla.
Hdfs dfs -rm categoría)
(Revise bien que no queden espacios adicionales o caracteres cuando copie y pegue el
cmando completo.
sqoop import : es el programa.
connect jdbc:mysql://ec2-3-91-87-62.compute-1.amazonaws.com/retail_db: es el string
de conexión a la base de datos.
--driver org.mariadb.jdbc.Driver: es la indicación que vamos a usar el driver de mariadb
como mysql.
--username=adiaz -P : es el usuario de Mysql
--table categories \: es la tabla que queremos copiar
--target-dir /user/hadoop/categoria : es la carpeta de hadoop donde vamos a llevar la
tabla de Mysql.
Capture pantalla
Pegue aquí
1. Ingrese a mysql
mysql -u adiaz -p
5. Creemos una tabla -para importar la lista de categorías que llevamos a DHFS.
Debe tener los mismos campos.
Use ventas;
create table categorias (id INT NOT NULL PRIMARY KEY, id_categoria INT, nomnre
VARCHAR(30));
show tables;
show columns from categorías; es lo mismo que escribir >describe categorias
6. Salir de Mysql
>exit;
7. Exportemos de los archivos de HDFS en Sqoop (qué son los de categorías) hacia la nueva
base de datos y la tabla. Verifique que no haya carpetas u otros archivos en la carpeta
Sqoop.
Consideraciones importantes
Es posible que tenga que configurar SQL Server o MySQL para aceptar
conexiones remotas.
Pasos futuros