Guardar trabajos en Sqoop (Sqoop-job)

El proceso de importación y exportación de datos en Sqoop puede ser un proceso muy repetitivo, y si bien es cierto, que los comandos de importación y exportación de Sqoop tienen varios parámetros que pueden resultar difícil de recordar o que cometamos algún error en la escritura lo que hace que nos demoremos en la ejecución de las tareas corrigiendo ese tipo de errores. Para ello Sqoop nos permite guardar trabajos, asignándoles un nombre para luego ejecutarlos directamente. Esto resulta de especial interés por ejemplo en la importación incremental, cuando realizamos el proceso repetidamente. (más…)

Generación de código en Sqoop

Cuando realizamos una importación desde un sistema RDBMS a Hadoop se realiza una generación de código, Sqoop crea una instancia de Java con la definición de los registros que se van a importar. Pero se puede dar el caso que queramos generar de forma independiente dicha instancia de Java, para ello utilizamos la herramienta codegen de Sqoop.Codegen es una herramienta de Sqoop que realiza la generación de código, genera clases de Java las cuales interpreta y encapsula los datos importados, pero no realiza una importación de los datos. Sqoop examina la tabla de la base de datos origen para determinar los tipos de datos adecuados. Esta generación de código es útil en el caso que perdamos por algún motivo la instancia de Java creada durante la importación, cambie la especificación de los registros de la tabla origen o bien porque usemos un delimitador de campo diferente, para estos casos, nos interesará realizar la generación de código.

(más…)

Apache Hive en HDInsight: Primeras consultas (queries) HiveQL (II)

Apache Hive en HDInsight: Primeras consultas (queries) HiveQL (II)

En publicaciones anteriores hemos creado la BBDD de Hive para almacenar datos, y hemos cargado datos en HDInsight (HDI) además de crear la tabla externa que hace referencia a los archivos cargados.Recapitulando información de la Introducción a Hive, debemos recordar que el objetivo que se persigue con Hive es:

  • Utilizar un lenguaje parecido al SQL tradicional (HiveSQ).
  • Mediante este lenguaje ejecutar trabajos Map&Reduce sobre el data almacenado.

A continuación vamos a ejecutar consultas con la herramienta de línea de comando y analizaremos el comportamiento.

(más…)

Introducción Sqoop en HDInsight

Introducción Sqoop en HDInsight

El punto fuerte de la plataforma Hadoop es la posibilidad de trabajar con datos en diferentes formatos. Por lo general, en las organizaciones los datos se almacenan de forma estructurada en sistemas de bases de datos relacionales (RDBMS) o datawarehourse. Apache Sqoop es una herramienta que nos permite extraer información de un sistema estructurado (como por ejemplo SQL Server, MySQL o Oracle) y almacenarlo en HDFS (Hadoop Distributed File System) para sea procesada posteriormente. El procesamiento se puede hacer mediante programas de MapReduce o mediante otras herramientas como Hive. Una vez hemos explotado los datos y obtenido los resultados necesarios, podemos exportar dichos resultados a una base de datos relacional para presentarlos a usuarios finales. Además, Sqoop está integrado con Oozie, que permite la programar y automatizar tareas de importación y exportación. (más…)
Apache Hive en HDInsight: Creación de tablas y carga de datos básica

Apache Hive en HDInsight: Creación de tablas y carga de datos básica

Hive es un datawarehouse que ayuda a acceder (leer, escribir y borrar) a información almacenada en Hadoop. Hadoop utiliza como sistema de almacenamiento HDFS. En el caso concreto de HDInsight, Microsoft ha reemplazado el almacenamiento HDFS por almacenamiento Windows Azure Blob Storage (WASB). En esta publicación, hemos visto de forma cómo reemplaza HDInsight el almacenamiento de HDFS por WASB.  Una de las “quejas” que suele tener la comunidad de Hadoop respecto al almacenamiento HDFS es la complejidad de su administración. Viendo la filosofía que propone Microsoft en Azure con la virtualización del almacenamiento, es muy práctico delegar en Microsoft para la gestión eficiente del almacenamiento. Considera que en tus proyectos de Big-Data, el almacenamiento será una ubicación donde se irán colocando los archivos objeto de análisis. Más información sobre los razonamientos de Microsoft al respecto lo puedes encontrar aquí. (más…)
Primeros pasos: Creación de bases de datos en Apache Hive en HDInsight (en la nube) y paths (rutas – HDFS o WASB)

Primeros pasos: Creación de bases de datos en Apache Hive en HDInsight (en la nube) y paths (rutas – HDFS o WASB)

Anteriormente hemos conectado con la herramienta cliente (CLI) a HDInsight Developer Preview; en esta ocasión vamos a hacerlo directamente en la distribución disponible de HDInsight en Azure. Para crear un cluster de HDInsight en Windows Azure debes seguir los pasos descritos en este enlace. Esta publicación asume que has creado correctamente tu cluster HDInsight en Windows Azure. (más…)
Apache Hive en HDInsight. Introduccion al tutorial

Apache Hive en HDInsight. Introduccion al tutorial

Analizar y consultar información almacendada en Hadoop puede ser complicado; el diseño, desarrollo, pruebas y lanzamiento de programas Map&Reduce (MR) contra Hadoop es costoso en el ciclo de vida de los datos y se necesitaban alternativas. En las fases iniciales del programa Apache Hadoop, los equipos de Facebook y Yahoo tuvieron que resolver este dilema tomando caminos diferentes; Hadoop abrió el proyecto Apache Pig, y Facebook inició el proyecto Apache Hive. (más…)

Hadoop y BigData en Codemotion

El pasado mes de Marzo se celebró un evento llamado Codemotion en la Universidad Politécnica de Madrid. Entre los desarrolladores se colaron nuestros compañeros Javier Torrenteras y Rubén Pertusa para hablar acerca de Hadoop y BigData. (más…)
¿Qué es MapReduce?

¿Qué es MapReduce?

Continuamos con conceptos básicos acerca de Hadoop, explicando en este post qué es MapReduce.

MapReduce es un framework que proporciona un sistema de procesamiento de datos paralelo y distribuido. Su nombre se debe a las funciones principales que son Map y Reduce, las cuales explicaremos a continuación. MapReduce está pensado para la solución práctica de algunos problemas que pueden ser paralelizados, pero se ha de tener en cuenta que no todos los problemas pueden resolverse eficientemente con MapReduce. MapReduce está orientado a resolver problemas con conjuntos de datos de gran tamaño, por lo que utiliza el sistema de archivos distribuido HDFS.

(más…)