Vous êtes sur la page 1sur 62

Tecnologas en Big Data

Integracin de Datos

Luis Antonio Chavez Olaya [Escriba el nombre de la compaa]

1/01/2016
Tecnologas Big Data

Tecnologas Big
tienen un ciclo de vida as como el anlisis
mismo que impone distintos requisitos de
procesamiento.

Data El captulo III examina los enfoques


actuales de almacenamiento de datos
Integracin de Datos empresariales e inteligencia para demostrar
que el almacenamiento y anlisis en Big Data
Big Data tiene la capacidad de cambiar la pueden utilizarse conjuntamente con
naturaleza de un negocio. De hecho, hay herramientas de procesamiento as ampliar
muchas firmas Cuya nica existencia se basa las capacidades analticas de la empresa y
en su capacidad para generar ideas que slo profundizar los conocimientos para Business
Big Data puede entregar. Este primer conjunto Intelligence.
de captulos cubre lo esencial de Big Data,
principalmente de un Perspectiva empresarial. El captulo IV Exploraremos conceptos clave
Las empresas necesitan entender que Big relacionados con el almacenamiento Big Data.
Data no es slo Tecnologa-tambin se trata Esos conceptos informan al estudiante cmo
de cmo estas tecnologas pueden impulsar el almacenamiento de grandes Datos tiene
una organizacin hacia adelante. radicalmente diferentes caractersticas de la
tecnologa de bases de datos relacionales
Los captulos estn diseados bajo la comunes adems proporciona informacin
siguiente estructura: sobre cmo se procesan los conjuntos de
datos de Big Data aprovechando capacidades
El captulo I : ofrece una visin de los de procesamiento distribuidas y paralelas
conceptos clave y la terminologa que define adems mostrando como el framework
la esencia de Big Data y la promesa que MapReduce aprovecha divide and Conquer
desea entregar sofisticados Ideas Se explican para procesar eficientemente conjuntos de
las diversas caractersticas que distinguen los datos Big Data.
conjuntos de datos Big Data, al igual que las
definiciones de los diferentes tipos de datos El captulo V Proporciona una introduccin a
que pueden ser objeto de sus Tcnicas de una serie de tcnicas de anlisis de Big Data.
anlisis. Los El anlisis de Big Data aprovecha los
enfoques estadsticos para la evaluacin
El captulo II: Busca responder a la pregunta cuantitativa y cualitativa, mientras que los
de por qu las empresas deben adoptar Big enfoques computacionales se utilizan para la
Data como consecuencia de cambios minera de datos y aprendizaje.
subyacentes en el mercado y mundo de
negocio. Adems muestra que Big Data no Los conceptos tecnolgicos cubiertos en esta
simplemente "business as usual"(Lo de parte II son importantes para los negocios y la
Siempre) y que la decisin de adoptar Big tecnologa Lderes, as como los responsables
Data debe tener en cuenta muchas de la toma de decisiones que sern llamados
consideraciones de negocios y tecnologa. a evaluar el Para la adopcin de Big Data en
Esto demuestra el hecho de que los datos sus empresas.
deben ser gobernados y manejados, que

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 2
Pgina 2
Tecnologas Big Data

El captulo VI Proporciona contacto con el Big Data utilizado correctamente es parte de


ecosistema de Hadoop implementado en un una iniciativa estratgica basada en la
ambiente virtual de modo que podamos premisa de que los datos internos dentro de
explorar algunos de los elementos del una empresa no tienen todas las respuestas,
framework y realizar pruebas bsicas como asimismo los conceptos tecnolgicos cubiertos
ingesta, visualizacin, entendimiento del son importantes para los lderes de negocios y
sistema HDFS, comprensin de las la tecnologa, as como los responsables de la
herramientas. toma de decisiones que sern llamados a
evaluar la adopcin de Big Data en sus
empresas.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 3
Pgina 3
Tecnologas Big Data

Captulo VI
Tecnologas Big Data

Movimiento de Datos e Integracin

Las empresas que adoptan una moderna arquitectura de datos con Hadoop
deben reconciliar las realidades de la administracin de datos cuando traen datos
existentes y nuevos de diferentes plataformas bajo administracin.
A medida que Hadoop se despliega en entornos de datos y procesamiento
corporativos, el movimiento de datos y el linaje deben ser administrados de
manera centralizada y exhaustiva para proporcionar a la seguridad, gobernanza
de datos y equipos de administracin la supervisin necesaria para asegurar el
cumplimiento de los estndares corporativos de administracin de datos.
Hortonworks ofrece el Movimiento de Datos HDP y la Suite de Integracin (DMI
Suite) para proporcionar una gestin integral del movimiento de datos dentro y
fuera de Hadoop.

Definicin y programacin de Jobs de manipulacin de datos, incluyendo:


o Transferencia de datos
o Replicacin de datos
o Mirroring
o Snapshots
o Recuperacin de desastres
o Procesamiento de datos
Supervisin y administracin de trabajos de manipulacin de datos
Anlisis de causa raz de trabajos fallidos
Reiniciar, volver a ejecutar, suspender y finalizar de Jobs
Diseo gestin de flujos de trabajo.
Trabajos Ad-hoc de Transferencia y transformacin
Recopilacin, agregacin y movimiento de grandes cantidades de datos de transmisin

Data Movement Components

El Movimiento de Datos e Integracin de HDP (DMI Suite) aprovecha los siguientes proyectos de Apache:

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 4
Pgina 4
Tecnologas Big Data

Apache Falcon: Capa de gestin y abstraccin para simplificar y gestionar el movimiento de datos
en Hadoop
Apache Oozie: Workflow de Operaciones empresarial
Apache Sqoop: Transferencias de datos a granel entre sistemas Hadoop y RDBMS
Apache Flume: Servicio confiable y distribuido para recopilar, agregar y mover grandes cantidades
de datos de transmisin (Streaming)
Apache Kafla y Storm

Adems, el DMI Suite integra otras API de Apache para simplificar la creacin de procesos complejos,
validar la entrada del usuario y proporcionar administracin y monitoreo integrados.
Ms all de los componentes subyacentes, el DMI Suite proporciona potentes interfaces de usuario que
simplifican y agilizan la creacin y administracin de procesos complejos.

Gestin de Datos y Falcon Overview

En Hortonworks Data Platform (HDP), la gestin general del ciclo de vida de los
datos en la plataforma se logra a travs de Apache Falcon. Falcon proporciona un
sistema de gestin de datos de extremo a extremo para la plataforma Hadoop.
Tambin es una parte esencial de la gestin de datos.

Las capacidades bsicas incluyen:


Gestin del ciclo de vida de los datos.
Gestin y seguimiento de todos los movimientos de datos en HDP.
Transferencia de datos dentro y fuera de HDP.
Apoyo a topologas complejas de procesamiento de datos utilizando
tuberas de datos.
Integracin con Apache Atlas para el linaje de datos y gestin de
procedencias

El marco de Falcon aprovecha otros componentes de HDP, como Apache Pig,


Apache Sqoop, Apache Hive, Apache Spark y Apache Oozie, Apache Hadoop
Distributed File System (HDFS).

Falcon permite una administracin simplificada al proporcionar un marco para


definir y administrar la copia de seguridad, la replicacin y la transferencia de
datos. Falcon se ocupa de los siguientes requisitos de gestin de datos y
movimiento:

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 5
Pgina 5
Tecnologas Big Data

Administre de forma centralizada el ciclo de vida de los datos: Falcon le


permite administrar el ciclo de vida de los datos en un lugar comn donde
puede definir y administrar polticas y tuberas para el procesamiento y la
exportacin de datos.

Continuidad del negocio y recuperacin de desastres : Falcon puede replicar


los conjuntos de datos HDFS y Hive, activar procesos para reintento y
manejar la lgica de llegada tarda de datos. Adems, Falcon puede duplicar
sistemas de archivos o bases de datos y tablas de Hive HCatalog en
clsteres mediante extensiones de servidor que le permiten volver a usar
flujos de trabajo complejos.

Cumplimiento de requisitos de auditora y cumplimiento: Falcon proporciona


funciones de auditora y cumplimiento que le permiten visualizar el linaje de
la tubera de datos, rastrear los registros de auditora de la tubera de datos
y etiquetar los datos con los metadatos empresariales.|

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 6
Pgina 6
Tecnologas Big Data

Figure 7.1. Falcon Architecture

1. Falcon Access
Hay tres mtodos para acceder a Falcon:

Utilizando la interfaz grfica de usuario de Falcon, accesible desde


Apachi Ambari independiente o como una vista de Ambari
Uso de la CLI de Falcon
Uso de las API de Falcon, como servicio

2. Entender las relaciones de entidad

Las entidades Falcon se configuran para formar una canalizacin de datos. Un


pipeline (tubera) consiste en un conjunto de datos y el procesamiento que acta
en el conjunto de datos de su clster HDFS. Puede configurar las tuberas de datos
para la replicacin y duplicacin de datos.

Al crear una canalizacin de datos, debe definir ubicaciones de almacenamiento


de clster e interfaces, feeds de conjuntos de datos y la lgica de procesamiento
que se aplicar a los conjuntos de datos.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 7
Pgina 7
Tecnologas Big Data

Figure 7.2. Data Pipeline

Cada pipeline consiste en especificaciones de pipeline XML, llamadas entidades.


Estas entidades actan juntas para proporcionar un flujo dinmico de informacin
para cargar, limpiar y procesar datos.

Hay tres tipos de entidades:

Cluster: Define el clster, incluyendo sus interfaces, donde se almacenan los


datos y los procesos.

Feed: Define los conjuntos de datos que se van a limpiar y procesar.

Process(Proceso): Define cmo el proceso (como un job pig o Hive) funciona


con el conjunto de datos en la parte superior de un clster. Un proceso consume
feeds, invoca la lgica de procesamiento (incluyendo el manejo tardo de datos) y
produce otros feeds. Tambin define la configuracin del flujo de trabajo de Oozie
y define cundo y con qu frecuencia debe ejecutarse el flujo de trabajo.

Cada entidad se define por separado y luego se vinculan entre s para formar una
tubera de datos. Falcon proporciona polticas predefinidas para la replicacin de
datos, la retencin, el manejo tardo de datos, el reintento y la replicacin. Estas
polticas de ejemplo se personalizan fcilmente para satisfacer sus necesidades.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 8
Pgina 8
Tecnologas Big Data

Estas entidades pueden ser reutilizadas muchas veces para definir polticas de
administracin de datos para trabajos de Oozie, trabajos de Spark, scripts Pig y
consultas de Hive. Por ejemplo, las polticas de gestin de datos de Falcon se
convierten en trabajos de coordinador de Oozie:

Figure 7.3. Data Pipeline Flow

La funcionalidad de auditora y linaje es parte del gobierno de datos y no se trata en esta documentacin. Consulte la
Gua de gobierno de datos para obtener informacin sobre auditora y linaje.

3. Consideraciones para Utilizar Falcon

Antes de implementar Falcon con HiveDR, asegrese de revisar los siguientes


requisitos y limitaciones. Pngase en contacto con Hortonworks Support si tiene
preguntas sobre su entorno o configuracin.

Versiones
HDP 2.5.3: Soporta Falcon con Hive, pero vea todos los comentarios que
siguen para algunas limitaciones

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 9
Pgina 9
Tecnologas Big Data

Ambari 2.4: Soporta mltiples configuraciones de clster y ha mejorado el


soporte para Falcon

Kerberos: Los siguientes son compatibles con HDP 2.5 o posterior:


Falcon con Kerberos
Grupos de dominios cruzados
Kerberos con configuracin HA

Dimensionamiento

El ancho de banda del enlace entre clsteres debe ser un mnimo de 1 Gbps
Los conjuntos de datos deben ser 10 TB o menos por almacn de datos

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 10
Pgina 10
Tecnologas Big Data

HandsOn Definiendo Pipelines con Apache Falcon


INTRODUCCIN
Apache Falcon es un marco para simplificar el procesamiento y la gestin de la
tubera de datos en los clsteres Hadoop.

Esto facilita la integracin de nuevos flujos de trabajo / tuberas, con soporte para
el manejo de datos tardos y las polticas de reintento. Le permite definir
fcilmente la relacin entre varios datos y elementos de procesamiento e
integrarlos con metastore / catlogo como Hive / HCatalog. Finalmente, tambin
le permite capturar informacin de linaje para feeds y procesos. En este tutorial,
vamos a crear un clster de Falcon mediante:

Preparacin de directorios HDFS


Creacin de dos entidades de clster (primaryCluster y backupCluster)

Tutorial:
1. CREATE A FALCON CLUSTER

2. DEFINE AND PROCESS DATA PIPELINES IN HADOOP WITH APACHE FALCON

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 11
Pgina 11
Tecnologas Big Data

Ingesta de Datos

Apache Sqoop
Sqoop es una herramienta diseada para transferir datos entre Hadoop y bases
de datos relacionales o unidades centrales.
Puede utilizar Sqoop para importar datos de un sistema de gestin de bases de
datos relacionales (RDBMS) como MySQL u Oracle o una unidad central en el
sistema de archivos distribuido Hadoop (HDFS) e inclusive con una Mainframe, el
proceso transforma los datos en MapReduce hacia hadoop y luego puedes
exportar los datos de nuevo en un RDBMS.

Sqoop automatiza la mayor parte de este proceso, basndose en la base de datos


para describir el esquema de los datos a importar. Sqoop usa MapReduce para
importar y exportar los datos, lo que proporciona el funcionamiento en paralelo,
as como la tolerancia a fallos.

Esta Herramienta est dirigido a:


Programadores de Sistemas y aplicaciones
Los administradores de sistemas
los administradores de bases de datos
Los analistas de datos
Los ingenieros de datos
Se requiere el siguiente conocimiento previo informtica y terminologa
bsica, estar familiarizado con las interfaces de lnea de comandos
como bash
Conocer de sistemas de gestin de bases de datos relacionales y
familiaridad bsica con el propsito y el funcionamiento de Hadoop como
repositorio unificado.

Argumentos de la funcin
Debe proporcionar los argumentos genricos -conf, -D y as sucesivamente
despus del nombre de la herramienta pero antes de cualquier argumento
especfico de la herramienta (como --connect). Tenga en cuenta que los
argumentos genricos de Hadoop son precedidos por un solo carcter de guin
(-), mientras que las herramientas especficas

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 12
Pgina 12
Tecnologas Big Data

Los argumentos comienzan con dos guiones (-), a menos que sean argumentos de
un solo carcter como -P

$ sqoop help import

usage: sqoop import [GENERICARGS] [TOOLARGS]

Common arguments:

connect <jdbcuri> Specify JDBC connect string

connect <jdbcuri> Specify JDBC connect string

connectmanager <classname> Specify connection manager class to use

driver <classname> Manually specify JDBC driver class to use

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 13
Pgina 13
Tecnologas Big Data

Conectores Con Apache Sqoop

Sqoop utiliza una arquitectura basada en conectores que admite plugins que
proporcionan conectividad a sistemas externos.
Utilizando conectores especializados que funcionan con controladores JDBC,
Sqoop se conecta con sistemas externos que han optimizado las instalaciones de
importacin y exportacin.
Los conectores tambin permiten que Sqoop se conecte con sistemas externos
que no admiten JDBC nativo.
Los conectores son componentes de complemento basados en la estructura de
extensin Sqoop y se pueden agregar a cualquier instalacin existente de Sqoop.

Puede ser necesario descargar e instalar controladores JDBC para que algunos
conectores funcionen correctamente. Puede obtener controladores JDBC desde la
distribucin del cliente para el sistema operativo del sistema externo o desde el
fabricante de su sistema externo. Para instalar, copie el controlador JDBC en el
directorio $ SQOOP_HOME/lib de la instalacin de Sqoop.

Hortonworks proporciona los siguientes conectores para Sqoop en la distribucin HDP 2:

MySQL connector: Instructions for using this connector are available in the Apache
Sqoop documentation for MySQL JDBC Connector.

Netezza connector: See Section 3, Netezza Connector and the Apache Sqoop
documentation for Netezza Connector for more information.

Oracle JDBC connector: Instructions for using this connector are available in the
Apache Sqoop documentation for Data Connector for Oracle and Hadoop.

PostgreSQL connector: Instructions for using this connector are in the Apache
Sqoop documentation for PostgreSQL Connector.

Microsoft SQL Server connector: Instructions for using this connector are in the
Apache Sqoop documentation for Microsoft SQL Connector.

Usando la opcin de Pasar Archivos como Argumento

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 14
Pgina 14
Tecnologas Big Data

Cuando se utiliza Sqoop, las opciones de lnea de comandos que no cambian de


invocacin a invocacin se pueden poner en un archivo de opciones por
conveniencia.

Un archivo de opciones es un archivo de texto en el que cada lnea identifica una


opcin en el orden en que aparece de lo contrario en la lnea de comandos.

Para especificar un archivo de opciones, simplemente cree un archivo de opciones


en una ubicacin conveniente y pase a la lnea de comandos a travs del
argumento --options-file.

Cada vez que se especifica un archivo de opciones, se ampla en la lnea de


comandos antes de invocar la herramienta.
Puede especificar ms de una opcin de archivos dentro de la misma invocacin
si es necesario.

Por ejemplo, la siguiente invocacin de Sqoop para importacin se puede


especificar como se muestra a continuacin:

$ sqoop import connect jdbc:mysql://localhost/db username foo table TEST


Donde
el archivo de opciones /users/homer/work/import.txt contiene lo siguiente:

import

connect

Los archivos de opciones permiten especificar una nica opcin en varias lneas
utilizando el carcter de barra invertida al final de las lneas intermedias.
Tambin se admiten comentarios dentro de los archivos de opciones que
comienzan con el carcter de hash #.

##

Options file for Sqoop import

# Specifies the tool being invoked

import
Luis Antonio Chavez Olaya
Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
# Connect parameter
Tecnologas and value
Big DataPgina 15
Pgina 15
Tecnologas Big Data

Los comentarios deben ser especificados en una nueva lnea y no se puede


mezclar con el texto de la opcin. Todos los comentarios y las lneas vacas se
ignoran cuando se expanden los archivos de opciones. A menos que las opciones
aparezcan como cadenas entre comillas, los espacios iniciales o finales se
ignoran. Las cadenas citadas si se utilizan no deben extenderse ms all de la
lnea en la que se especifican.

Los archivos de opciones se pueden especificar en cualquier lugar de la lnea de


comandos, siempre y cuando las opciones dentro de ellos sigan las reglas de
opciones que se prescriben. Por ejemplo, independientemente de dnde se
carguen las opciones, deben seguir el orden de forma que aparezcan las opciones
genricas primero, las opciones especficas de la herramienta a continuacin y,
finalmente, las opciones que se pretenden pasar a los programas secundarios.

Conectando a un Servidor De Base De Datos

Sqoop est diseado para importar tablas desde una base de datos a HDFS. Para
ello, debe especificar una cadena de conexin que describa cmo conectarse a la
base de datos.
La cadena de conexin es similar a una URL y se comunica a Sqoop con el
argumento --connect. Esto describe el servidor y la base de datos para
conectarse, tambin puede especificar el puerto. Por ejemplo:

$ sqoop import --connect jdbc : mysql : //database.example.com/employees


Esta cadena se conectar a una base de datos MySQL denominada empleados en
la base de datos host.example.com.

Es importante que no utilice el URL localhost si tiene intencin de utilizar Sqoop


con un clster distribuido de Hadoop.
La cadena de conexin que se suministra se utilizar en los nodos TaskTracker de
su cluster MapReduce, si especifica el nombre literal localhost, cada nodo se
conectar a una base de datos diferente (o ms probable, sin base de datos en
absoluto). En su lugar, debe utilizar el nombre de host completo o la direccin IP
del host de base de datos que pueden ver todos los nodos remotos.

Forma segura de proporcionar contrasea a la base de datos.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 16
Pgina 16
Tecnologas Big Data

Debe guardar la contrasea en un archivo del directorio principal de usuarios con


permiso 400 (r - - = 400) y especificar la ruta de acceso a ese archivo utilizando el
argumento --password-file y es el mtodo preferido para introducir credenciales.
Sqoop leer la contrasea del archivo y la pasar al cluster MapReduce utilizando
medios seguros sin exponer la contrasea en la configuracin del trabajo. El
archivo que contiene la contrasea puede estar en el FS local o HDFS. Por

$ sqoop import --connect jdbc :mysql://database.example.com/employees \


ejemplo:

Advertencia
Sqoop leer todo el contenido del archivo de contraseas y lo usar como una
contrasea.
Esto incluir cualquier carcter de espacio en blanco como los nuevos caracteres
de lnea que se agregan de forma predeterminada por la mayora de los editores
de texto. Debe asegurarse de que el archivo de contraseas slo contiene
caracteres que pertenecen a su contrasea.

En la lnea de comandos puede utilizar el comando echo con el conmutador -n


para almacenar la contrasea sin ningn espacio en blanco. Por ejemplo, para
almacenar secretos de contraseas, se llamara echo -n "secret"> password.file.

Ejemplo de uso es el siguiente (suponiendo .password.alias tiene el alias de la


contrasea real):
$ sqoop import --connect jdbc:mysql://database.example.com/employees \
--username dbuser --password-file ${user.home}/.password-alias

Driver
Segn la documentacin de cada driver se debe utilizar la cadena de conexin,
Por ejemplo, para conectarse a una base de datos SQL Server, primero descargar
el controlador de microsoft.com e instalarlo en su path de lib para Sqoop.
A continuacin, ejecute Sqoop. Por ejemplo:
$ sqoop import --driver com.microsoft.jdbc.sqlserver.SQLServerDriver \
--connect <connect-string> ...

Importacin con Sqoop.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 17
Pgina 17
Tecnologas Big Data

La importacin de una tabla con Sqoop es muy simple: emite el comando de


importacin de Sqoop

$ sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities
La importacin de una tabla completa es uno de los casos de uso ms comunes
con sqoop. El resultado de este comando ser un archivo CSV separado por
comas donde cada fila se almacenar en una sola lnea.

Sepueden observar los apramentros de coneccion y de credenciales para


identificar al usuario de la Base de Datos

Espcecifica un Directorio.

Sqoop ofrece dos parmetros para especificar directorios de salida


personalizados:

--target-dir
--warehouse-dir
Utilice el parmetro --target-dir para especificar el directorio en HDFS donde
Sqoop debera importar sus datos. Por ejemplo, utilice el comando siguiente para
importar las ciudades de tabla en el directorio / etl / input / cities:

$ sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \--table cities \
--target-dir /etl/input/cities
Para especificar el directorio padre para todos los trabajos de Sqoop, utilice el
parmetro warehouse-dir

$ sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \--table cities \
--warehouse-dir /etl/input/

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 18
Pgina 18
Tecnologas Big Data

De forma predeterminada, Sqoop crear un directorio con el mismo nombre que la


tabla importada dentro de su directorio personal en HDFS e importar todos los
datos all.

Por ejemplo, cuando el usuario jarcec importa las ciudades de la tabla, se


almacenar en

/user/jarcec/cities.

Este directorio se puede cambiar a cualquier directorio arbitrario en su HDFS


usando el parmetro --target-dir. El nico requisito es que este directorio no debe
existir antes de ejecutar el comando Sqoop.

Usando otros Formatos no CSV


Sqoop admite tres formatos de archivo diferentes; Uno de ellos es texto, y los
otros dos son binarios. Los formatos binarios son Avro y Hadoop's SequenceFile.
Puede habilitar la importacin en el archivo secuencial utilizando el parmetro
--as-sequencefile:

$ sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities \
--as-sequencefile
Avro puede ser habilitado especificando el parmetro --as-avrodatafile :

$ sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities \
--as-avrodatafile
Los formatos binarios tienen algunos beneficios sobre los de los archivos de texto.
En primer lugar, los formatos binarios son natural para almacenar valores binarios
como imgenes o documentos PDF. Tambin son ms adecuados para almacenar
datos de texto si los propios datos contienen caracteres que se utilizan de otra
manera como separadores en el archivo de texto. Junto con estos beneficios, hay
un inconveniente: para acceder a los datos binarios, es necesario implementar
funcionalidades adicionales o cargar bibliotecas especiales en su aplicacin.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 19
Pgina 19
Tecnologas Big Data

SequenceFile es un formato de archivo especial de Hadoop que se utiliza para


almacenar objetos. Este formato fue personalizado para MapReduce y, por tanto,
espera que cada registro conste de dos partes: clave y valor. Sqoop no tiene el
concepto de pares clave-valor y por lo tanto utiliza un objeto vaco llamado
NullWritable en lugar del valor. Para la clave, Sqoop utiliza la clase generada. Por
conveniencia, esta clase generada se copia en el directorio donde se ejecuta
Sqoop. Necesitar integrar esta clase generada a su aplicacin si necesita leer un
archivo de secuencias generado por Sqoop.

Apache Avro es un sistema genrico de serializacin de datos. Especificar el


parmetro --asavrodatafile indica a Sqoop que utilice su formato de codificacin
binaria compacta y rpida. Avro es un sistema muy genrico que puede
almacenar cualquier estructura de datos arbitraria. Utiliza un concepto llamado
esquema para describir qu estructuras de datos estn almacenadas dentro del
archivo. El esquema suele codificarse como una cadena JSON para que sea
descifrable por el ojo humano. Sqoop generar automticamente el esquema
basado en la informacin de metadatos recuperada del servidor de base de datos
y conservar el esquema en cada archivo generado. Su aplicacin tendr que
depender de las bibliotecas Avro para abrir y procesar los datos almacenados
como Avro. No es necesario importar ninguna clase especial, como en el caso
SequenceFile, ya que todos los metadatos necesarios estn incrustados en los
archivos importados.

Mejorando la Velocidad de Transferencia


En lugar de usar la interfaz JDBC para transferir datos, el modo directo delega el
trabajo de transferir datos a las utilidades nativas proporcionadas por el
proveedor de la base de datos. En el caso de MySQL, mysqldump y mysqlimport
se utilizarn para recuperar datos desde el servidor de bases de datos o trasladar
datos.

En el caso de PostgreSQL, Sqoop Aproveche la utilidad pg_dump para importar


datos. Utilizar utilidades nativas mejorar el rendimiento, ya que estn optimizados
para proporcionar la mejor velocidad de transferencia posible mientras que ponen
menos carga en el servidor de la base de datos. Hay varias limitaciones que
vienen con esta importacin ms rpida. En primer lugar, no todas las bases de
datos disponen de utilidades nativas. Esta modo no est disponible para cada

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 20
Pgina 20
Tecnologas Big Data

base de datos admitida. Fuera de la caja, Sqoop tiene Soporte slo para MySQL y
PostgreSQL

Dado que todas las operaciones de transferencia de datos se realizan dentro de


los jobs generados de MapReduce y porque la transferencia de es enviada a las
utilidades nativas en modo directo, deber asegurarse de que esas utilidades
nativas estn disponibles en todos los nodos Hadoop TaskTracker. Por ejemplo, en
el caso de MySQL, cada nodo que aloja un servicio TaskTracker necesita tener
instaladas las utilidades mysqldump y mysqlimport.

Otra limitacin del modo directo es que no se admiten todos los parmetros.
Como las utilidades nativas normalmente producen salida de texto, los formatos
binarios como SequenceFile o Avro no funcionarn. Adems, los parmetros que
personalizan los caracteres de escape, la asignacin de tipos, los delimitadores de
columnas y filas o la cadena de sustitucin NULL pueden no ser compatibles en
todos los casos.

Importacin Incremental
Qu pasa si necesita mantener los datos importados en Hadoop en
sincronizacin con la tabla de origen en el lado de la base de datos relacional?

Mientras que usted podra obtener una nueva copia todos los das reimportando
todos los datos, que no sera ptimo. La cantidad de tiempo necesario para
importar los datos aumentara proporcionalmente a la cantidad de datos
adicionales aadidos a la tabla diariamente. Esto pondra una carga de
rendimiento innecesaria en su base de datos. Por qu reimportar datos que ya se
han importado? Para transferir deltas de datos, Sqoop ofrece la posibilidad de
realizar importaciones incrementales: append y lastmodified.

Se puede utilizar el argumento incremental para especificar el tipo de importacin


incremental de llevar a cabo, se debe especificar append el modo al importar una
tabla donde las nuevas filas, continuamente se aaden con el aumento de los
valores de ID de fila.

Se debe especificar la columna que contiene el id de la fila con --check-column

Sqoop importa filas donde la columna de la verificacin tiene un valor mayor que
el valor especificado en --last-value.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 21
Pgina 21
Tecnologas Big Data

La importacin incremental en el modo de agregacin le permitir transferir slo


las filas recin creadas. Esto ahorra una cantidad considerable de recursos en
comparacin con realizar una importacin completa cada vez que necesite que
los datos estn sincronizados. Una desventaja es la necesidad de saber el valor de
la fila importada pasada de modo que la vez prxima Sqoop pueda comenzar
donde termin.

Cuando Sqoop se ejecuta en modo incremental, imprime siempre el valor de la


ltima fila importada. Esto le permite recoger fcilmente donde lo dejaste.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 22
Pgina 22
Tecnologas Big Data

Importacin incremental Mutable


Para casos de actualizacin de una tabla por Sqoop se utiliza el parmetro
lastmodified. Debe utilizar esta opcin cuando las filas de la tabla de origen
pueden ser actualizadas, y cada una de dichas actualizaciones se establezca el
valor de una hora de ltima modificacin en una columna de fecha y hora. Las
filas se evaluaran en base a la columna de la verificacin, revisando que posee
una marca de tiempo ms reciente que la marca de tiempo especificado con --
last-value.

Esto se maneja de forma automtica mediante la creacin de una importacin


incremental de un trabajo guardado, que es el mecanismo preferido para realizar
una importacin adicional recurrente.

Recordar el ltimo valor


La importacin incremental es una gran caracterstica que usas mucho. Pero el asumir la
responsabilidad de recordar el ltimo valor importado es llegar a ser una molestia.

Puede aprovechar el metastore Sqoop incorporado que le permite guardar todos los parmetros
para su posterior reutilizacin. Puede crear un trabajo de importacin incremental simple con el
siguiente comando

El metastore Sqoop es una parte importante de Sqoop que te permite conservar tus definiciones
de jobs y ejecutarlas fcilmente en cualquier momento. Cada job guardado tiene un nombre lgico
que se utiliza para referenciar.

Puede listar todos los Jobs retenidos usando el parmetro --list:

sqoop job list


Puede eliminar las definiciones de Jobs anteriores que ya no se necesitan con el parmetro
--delete, por ejemplo:

sqoop job --delete visits

Y finalmente, tambin puede ver el contenido de las definiciones de trabajo guardadas utilizando
el parmetro --show, por ejemplo:

Sqoop job --show visits

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 23
Pgina 23
Tecnologas Big Data

La salida del comando --show estar en forma de propiedades. Lamentablemente, Sqoop


actualmente no puede reconstruir la lnea de comandos que utiliz para crear el trabajo guardado.
El beneficio ms importante del metastore incorporado de Sqoop est en conjuncin con la
importacin incremental. Sqoop automticamente serializar el ltimo valor importado de nuevo
en el metastore despus de cada trabajo incremental exitoso. De esta manera, los usuarios no
necesitan recordar el ltimo valor importado despus de cada ejecucin; Todo se maneja
automticamente.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 24
Pgina 24
Tecnologas Big Data

Exportacin de datos desde Hadoop


Se presenta la necesidad cuando se tiene un flujo de trabajo de varios Jobs Hive y
MapReduce que generan datos en un clster Hadoop y debe transferir estos datos
a su base de datos relacional para integrar en dashboards y consultas

Puede utilizar la funcin de exportacin de Sqoop que le permite transferir datos


del ecosistema Hadoop a bases de datos relacionales. Por ejemplo, para exportar
datos desde un directorio cities (el directorio en HDFS que contiene los datos de
origen) habla la tabla cities(la tabla a rellenar en la base de datos), utilizara el
siguiente comando Sqoop:

$ sqoop export \
--connect jdbc:mysql://localhost/company \
--username twheeler --password bigsecret \
--export-dir /mydata/recommender_output \
--table product_recommendations
La exportacin funciona de manera similar a la importacin, excepto los datos de
transferencias de exportacin en la otra direccin.

El flujo de trabajo de exportacin de Sqoop coincide con el caso de importacin


con ligeras diferencias. Despus de ejecutar el comando Sqoop, Sqoop se
conectar a su base de datos para obtener varios metadatos sobre su tabla,
incluida la lista de todas las columnas con sus tipos apropiados. Usando estos
metadatos, Sqoop generar y compilar la clase Java.

La clase generada se utilizar en el trabajo MapReduce enviado que exportar los


datos. Al igual que en el modo de importacin, no se estn transfiriendo datos a
travs del propio cliente Sqoop. Todas las transferencias se realizan en el trabajo
MapReduce, con Sqoop supervisando el proceso desde su mquina. Sqoop busca
los metadatos de la tabla en la exportacin: la tabla de destino (especificada con
el parmetro -table) debe existir antes de ejecutar Sqoop. La tabla no tiene que
estar vaca e incluso puede exportar nuevos datos de Hadoop a su base de datos
de forma iterativa. El nico requisito es que no haya ninguna violacin de
restriccin al realizar las sentencias INSERT (por ejemplo, existir mismo valor dos
veces para cualquier clave primaria o nica).

Exportacin Actualizado Datasets

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 25
Pgina 25
Tecnologas Big Data

Esto se da cuando anteriormente se exportaron datos de Hadoop, y despus de


eso se ejecut algn procesamiento adicional que cambi el dato. En lugar de
borrar los datos existentes de la base de datos, prefiere actualizar cualquier fila
modificada

Puede aprovechar la funcin de actualizacin que emitir UPDATE en lugar de


instrucciones INSERT. El modo de actualizacin se activa mediante el parmetro
--update-key que contiene el nombre de una columna que puede identificar una
fila modificada, normalmente la clave primaria de una tabla. Por ejemplo, el
siguiente comando le permite usar el id de columna de las ciudades de la tabla:

El parmetro --update-key se utiliza para instruir a Sqoop para actualizar las filas
existentes en lugar de insertar nuevas.

Este parmetro requiere una lista de columnas separadas por comas que debe
utilizarse para identificar de forma exclusiva una fila.

Se generar una consulta UPDATE con la clusula WHERE que incluir estas
columnas. Todas las otras columnas de la tabla se utilizarn en la parte SET de la
consulta. Por ejemplo, para una tabla que contiene cuatro columnas (c1, c2, c3 y
c4), llamar a Sqoop con la clave --update c2, c4 generar la siguiente consulta de
actualizacin:

UPDATE table SET c1 = ?, c3 = ? WHERE c2 = ? and c4 = ?

Es importante entender la estructura de la consulta para ver cmo el modo de


actualizacin exportar datos de Hadoop. En primer lugar, las columnas utilizadas
para identificar la fila nunca se actualizarn porque no forman parte de la clusula
SET. Adems, si sus datos en Hadoop contienen algunas filas completamente
nuevas, la clusula WHERE no coincidir con ninguna fila en el lado de la base de
datos. Una operacin de este tipo en el lado de la base de datos es totalmente
vlida, pero no da lugar a filas actualizadas. Por lo tanto, las nuevas filas no se
exportan en modo de actualizacin en absoluto.

Actualizacin e Insercin al mismo tiempo - UPSERT


Tiene datos en su base de datos de una exportacin anterior, pero ahora necesita
propagar actualizaciones de Hadoop. Desafortunadamente, no puedes usar el
modo de actualizacin, ya que tienes un nmero considerable de nuevas filas y
necesitas exportarlas tambin.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 26
Pgina 26
Tecnologas Big Data

Si necesita actualizaciones e inserciones en el mismo trabajo, puede activar el


llamado modo upsert con el parmetro --update-mode allowinsert Por ejemplo

$ sqoop export \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities \
--update-key id \
--update-mode allowinsert
La capacidad de insertar de forma condicional una nueva fila o actualizar una ya
existente es una funcin de base de datos avanzada conocida como UPSERT. Esta
caracterstica no est disponible en todos los sistemas de bases de datos ni es
compatible con todos los conectores Sqoop.

Actualmente solo est disponible para Oracle y las exportaciones no directas de


MySQL.

Cada base de datos implementa la funcin Upsert un poco diferente. Con Oracle,
Sqoop utiliza una instruccin MERGE que especifica una condicin completa para
distinguir si se debe realizar una operacin de insercin o actualizacin. Con
MySQL, Sqoop utiliza una clusula ON DUPLICATE KEY UPDATE que no acepta
ninguna condicin especificada por el usuario; Decide si actualizar o insertar
basado en la clave nica de la tabla.

La funcin UPSERT nunca borrar ninguna fila: este mtodo de actualizacin no


funcionar como se esperaba si est intentando sincronizar datos en su base de
datos con datos arbitrariamente alterados de Hadoop. Si necesita realizar una
sincronizacin completa incluyendo inserciones, actualizaciones y eliminaciones,
debe exportar el conjunto de datos completo utilizando la exportacin normal sin
que haya ninguna caracterstica de actualizacin habilitada.

Esto, por supuesto, requiere una tabla de salida vaca, por lo que debe truncar
antes de ejecutar la exportacin. Si no puede hacerlo ya que sus aplicaciones
utilizan activamente la tabla, puede exportar los datos temporalmente a una tabla
diferente y, a continuacin, intercambiar las dos tablas una vez que la exportacin
de Sqoop tenga xito.

Importacin de datos en HIVE

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 27
Pgina 27
Tecnologas Big Data

La funcin principal de la herramienta de importacin de Sqoop es cargar los


datos en archivos en HDFS. Si usted tiene un MetaStore HIVE asociado con el
clster de HDFS, Sqoop tambin puede importar los datos en Hive.

La importacin de datos en Hive es tan simple como aadir la --hive-import


opcin de lnea de comandos Sqoop.

Si la tabla de Hive ya existe, se puede especificar la --hive-overwrite opcin para


indicar que la tabla existente en la colmena debe ser reemplazado.

Despus de que su tabla ha sido importada en HDFS o se omite este paso, Sqoop
generar una secuencia de comandos de Hive que contiene una operacin CREATE
TABLE de definicin de sus columnas utilizando los tipos de Hive y una declaracin
LOAD DATA INPATH para mover los archivos de datos en el directorio de almacn de
Hive.

El script se ejecuta llamando a la copia instalada hive en la mquina donde se


ejecuta Sqoop. Si tiene varias instalaciones de Hive , o Hive no est en su $PATH,
utilice la --hive-home opcin para identificar el directorio de instalacin de
Hive. Sqoop utilizar hive desde la ruta $HIVE_HOME/bin/hive

Importacin de todas las tablas


La herramienta import-all-tables importa un conjunto de tablas a partir de un
RDBMS de HDFS. Los datos de cada tabla se almacenan en un directorio
independiente en HDFS.

Para que la herramienta import-all-tables sea til, las siguientes condiciones


deben cumplirse:

Cada tabla debe tener una clave principal de una sola columna o de --
autoreset-to-one-mapper opcin debe ser utilizada.

Debe tener la intencin de importar todas las columnas de cada tabla.

No debe tener la intencin de utilizar divisin de columnas, ni imponer


ninguna condicin a travs de una clusula WHERE.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 28
Pgina 28
Tecnologas Big Data

Estos argumentos se comportan de la misma manera como lo hacen cuando se


utiliza para la herramienta sqoop-import, pero los argumentos --table, --split-
by, --columns, --where no son vlidos para sqoop-import-all-tables.

El --exclude-tables argument es para sqoop-import-all-tables solamente.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 29
Pgina 29
Tecnologas Big Data

Apache Flume
Apache Flume es un servicio distribuido, confiable y disponible para recopilar,
agregar y mover de forma eficiente grandes cantidades de datos de Streaming en
el (HDFS).

Componentes

Un flujo de datos Flume se compone de cinco componentes principales: eventos,


fuentes, canales, sumideros y agentes:

Agentes: Un agente es el contenedor de un flujo de datos Flume. Es


cualquier JVM fsica que ejecuta Flume. Un agente debe contener al menos
una fuente, canal y receptor, pero el mismo agente puede ejecutar
mltiples fuentes, sumideros y canales. Se configura una ruta de flujo de
datos en particular a travs del proceso de configuracin.
Eventos: Un evento es la unidad bsica de datos que se mueve con
Flume. Es similar a un mensaje en JMS y generalmente es pequeo. Se
compone de encabezados y un cuerpo de matriz de bytes.
Fuentes: La fuente recibe el evento de alguna entidad externa y lo
almacena en un canal. La fuente debe entender el tipo de evento que se
enva a ella: un evento Avro requiere una fuente Avro.

o Exec (bsico, reinicio)


o Syslogtcp
o Syslogudp
o Taildir
o Kafka

Canales: Un canal es un almacn pasivo interno con ciertas caractersticas


especficas. Un canal en memoria, por ejemplo, puede mover eventos muy
rpidamente, pero no proporciona persistencia. Un canal basado en archivos
proporciona persistencia. Una fuente almacena un evento en el canal donde
permanece hasta que es consumido por un receptor. Este almacenamiento
temporal permite que el origen y el fregadero se ejecuten
asincrnicamente.

o Memoria
o Archivo

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 30
Pgina 30
Tecnologas Big Data

o Kafka

SINK o resumidero: elimina el evento desde el canal y lo reenva a


cualquiera a un destino, al igual que el HDFS, o de otro agente / de flujo de
datos. El receptor debe mostrar un evento que sea apropiado para el
destino.

o HDFS: seguro, no seguro


o HBase
o Kafka
o Colmena

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 31
Pgina 31
Tecnologas Big Data

Debido a esta arquitectura muy simple pero potente, Flume es capaz de


mover cualquier cosa que pueda ser leda como una matriz de bytes de
cualquier sistema de origen a cualquier sistema de sumidero.
Si podemos abrir un flujo de entrada a los datos generados por la fuente,
entonces esa fuente puede convertirse en una fuente de canales. Si
podemos abrir un flujo de salida a este sistema, entonces el sistema puede
convertirse en un sumidero de canales. Flume proporciona muchas
implementaciones de fuentes y sumideros, sin embargo, los usuarios
tambin pueden implementar fcilmente sus propias fuentes o sumideros
personalizados si es ms conveniente.

Flume proporciona una capacidad para crear flujos de mltiples saltos. Con
esto queremos decir que hay mltiples agentes de flujo que forman una
cadena conjunta para transferir datos desde el Sistema Fuente al Sistema
de Destino. Esta capacidad nos permite crear flujos complejos donde los
datos de mltiples Agentes de Flujo se consolidan mediante salto
intermedio de Agentes de Flujo y luego se almacenan en el Sistema de
Destino.

Configuracin de un Agente
La configuracin del agente de flujo se almacena en un archivo de configuracin
local. Este es un archivo de texto que sigue el formato de archivo de propiedades
de Java.
Las configuraciones para uno o ms agentes se pueden especificar en el mismo
archivo de configuracin.
El archivo de configuracin incluye las propiedades de cada fuente, canal y
resumidero en un agente y cmo se conectan entre s para formar flujos de datos.
Cada componente (fuente, sumidero o canal) del flujo tiene un nombre, un tipo y
un conjunto de propiedades que son especficos para el tipo y la instancia.
Por ejemplo, una fuente Avro necesita un nombre de host (o direccin IP) y un
nmero de puerto para recibir datos. Un canal de memoria puede tener un
tamao mximo de cola ("capacidad"), y un sumidero HDFS necesita conocer el
URI del sistema de archivos, la ruta para crear archivos, la frecuencia de rotacin
de archivos ("hdfs.rollInterval"), etc. Todos estos atributos de un componente
Debe establecerse en el archivo de propiedades del agente Flume de alojamiento.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 32
Pgina 32
Tecnologas Big Data

# Example.conf: Una configuracin de Flume de un solo nodo

# Nombrar los componentes de este agente


a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describir / configurar la fuente


a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describir el fregadero
a1.sinks.k1.type = registrador

# Usar un canal que almacena buffers en la memoria


a1.channels.c1.type = memoria
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Vincule la fuente y el sumidero al canal


a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

Esta configuracin define un solo agente denominado a1. A1 tiene una fuente que
escucha los datos del puerto 44444, un canal que almacena datos de eventos en
memoria y un receptor que registra datos de eventos en la consola.
El archivo de configuracin nombra los distintos componentes, a continuacin,
describe sus tipos y parmetros de configuracin. Un archivo de configuracin
dado puede definir varios agentes nombrados; Cuando se lanza un proceso de
Flume determinado, se pasa un indicador que indica qu agente se ha de
manifestar.

Configuracin del flujo multi-agente


Con el fin de fluir los datos a travs de mltiples agentes o saltos, el fregadero del agente
anterior y la fuente del salto actual necesitan ser de tipo avro con el fregadero apuntando al
nombre de host (o direccin IP) y al puerto del origen

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 33
Pgina 33
Tecnologas Big Data

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 34
Pgina 34
Tecnologas Big Data

Consolidacin

Un escenario muy comn en la recopilacin de registros es un gran nmero de clientes que


producen registros que envan datos a unos pocos agentes de consumo que estn
conectados al subsistema de almacenamiento. Por ejemplo, los registros recopilados de
cientos de servidores web enviados a una docena de agentes que escriben en el clster
HDFS.

Esto puede lograrse en Flume configurando un nmero de agentes de primer nivel con un
fregadero avro, todos apuntando a una fuente avro de agente nico (nuevamente podra usar
las fuentes / sumideros de ahorro / clientes en tal escenario). Esta fuente en el agente de
segundo nivel consolida los eventos recibidos en un nico canal que es consumido por un
receptor hasta su destino final.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 35
Pgina 35
Tecnologas Big Data

Multiplexar el flujo

Flume admite la multiplexin del flujo de eventos a uno o ms destinos. Esto se logra
definiendo un multiplexor de flujo que puede replicar o enrutar selectivamente un evento a
uno o ms canales.

El ejemplo anterior muestra una fuente del agente "foo" que ventila el flujo a tres canales
diferentes. Este ventilador puede ser replicado o multiplexado. En caso de replicar el flujo,
cada evento se enva a los tres canales. Para el caso de multiplexacin, un evento se
entrega a un subconjunto de canales disponibles cuando el atributo de un evento coincide
con un valor preconfigurado. Por ejemplo, si un atributo de evento llamado "txnType" se
establece en "cliente", entonces debera ir a channel1 y channel3, si es "vendor" entonces
debera ir a channel2, de lo contrario channel3. La asignacin se puede establecer en el
archivo de configuracin del agente.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 36
Pgina 36
Tecnologas Big Data

Definicin del Flujo

Para definir el flujo dentro de un solo agente, es necesario vincular las fuentes y los
sumideros a travs de un canal. Necesita enumerar las fuentes, los sumideros y los canales
del agente dado y, a continuacin, apunte la fuente y el sumidero a un canal. Una instancia
de origen puede especificar varios canales, pero una instancia de receptor slo puede
especificar un canal. El formato es el siguiente:
# Lista de las fuentes, sumideros y canales para el agente
<Agente> .sources = <Fuente>
<Agente> .sinks = <Sink>
<Agente> .channels = <Channel1> <Canal 2>

# Set channel for source


<Agent> .sources. <Source> .channels = <Channel1> <Channel2> ...

# Establecer canales para fregadero


<agente> .sinks. <Sink> .Channel = <Channel1>

Por ejemplo, un agente denominado agent_foo est leyendo datos de un cliente externo de
avro y envindolos a HDFS a travs de un canal de memoria. El archivo de configuracin
weblog.config podra verse as:
# Lista de las fuentes, sumideros y canales para el agente
agent_foo.sources = avro-appserver-src-1
agent_foo.sinks = hdfs-sink-1
agent_foo.channels = mem-channel-1

Canal # conjunto de fuente


agent_foo.sources. avro-appserver-src-1.channels = mem-channel-1

# Ajustar el canal para el disipador


agent_foo.sinks.hdfs-sink-1.channel = mem-canal-1

Esto har que los eventos fluyan de Avro-Appsrv-Source a hdfs-Cluster1-sink a travs del
canal de memoria mem-channel-1. Cuando el agente se inicia con el weblog.config como su
archivo de configuracin, instanciar ese flujo.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 37
Pgina 37
Tecnologas Big Data

Configurando Componentes Individuales (Propiedades)

Despus de definir el flujo, debe establecer las propiedades de cada fuente, receptor y
canal. Esto se realiza en la misma moda de espacio de nombres jerrquico donde se
establece el tipo de componente y otros valores para las propiedades especficas de cada
componente:
# properties for sources
<Agent>.sources.<Source>.<someProperty> = <someValue>

# properties for channels


<Agent>.channel.<Channel>.<someProperty> = <someValue>

# properties for sinks


<Agent>.sources.<Sink>.<someProperty> = <someValue>

El tipo (type) de propiedad debe ser establecido para cada componente de Flume para
entender qu tipo de objeto que necesita ser.
Cada fuente, receptor y tipo de canal tiene su propio conjunto de propiedades necesarias
para que funcione como se pretende, todos esos necesitan ser fijados.
En el ejemplo anterior, tenemos un flujo de Avro-Appsrv-Source a hdfs-Cluster1-sink a travs
del canal de memoria mem-channel-1. He aqu un ejemplo que muestra la configuracin de
cada uno de esos componentes:
agent_foo.sources = avro-AppSrv-source
agent_foo.sinks = hdfs-Cluster1-sink
agent_foo.channels = mem-channel-1

# set channel for sources, sinks

# properties of avro-AppSrv-source
agent_foo.sources.avro-AppSrv-source.type = avro
agent_foo.sources.avro-AppSrv-source.bind = localhost
agent_foo.sources.avro-AppSrv-source.port = 10000

# properties of mem-channel-1
agent_foo.channels.mem-channel-1.type = memory
agent_foo.channels.mem-channel-1.capacity = 1000
agent_foo.channels.mem-channel-1.transactionCapacity = 100

# properties of hdfs-Cluster1-sink
agent_foo.sinks.hdfs-Cluster1-sink.type = hdfs
agent_foo.sinks.hdfs-Cluster1-sink.hdfs.path = hdfs://namenode/flume/webdata

#...

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 38
Pgina 38
Tecnologas Big Data

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 39
Pgina 39
Tecnologas Big Data

Flume Sources

Avro Fuente
Escucha en el puerto Avro y recibe eventos de flujos externos de clientes Avro. Cuando el Flume agente se
empareja con el built-in Avro Sink en otro (hop anterior), puede crear topologas de coleccin en niveles. Las
propiedades requeridas estn en negrita

Property Name Default Description

Channels

Type El nombre del tipo de componente, debe ser avro

bind Nombre de host o direccin IP para escuchar

port Numero de puerto a Enlazar

threads Nmero mximo de subprocesos de trabajo para generar

selector.type

selector.*

interceptors Space-separated list of interceptors

interceptors.*

This can be none or deflate. El tipo de compresin debe coincidir con el


compression-type none
tipo de compresin de AvroSource

Set this to true to enable SSL encryption. You must also specify a keystore
ssl false
and a keystore-password.

keystore This is the path to a Java keystore file. Required for SSL.

keystore-type JKS The type of the Java keystore. This can be JKS or PKCS12.

keystore-password The password for the Java keystore. Either this or the keystore-password-file

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 40
Pgina 40
Tecnologas Big Data

Property Name Default Description

setting is required for SSL.

keystore-password- The location of the file which stores the password to the keystore. Either this

file or the keystore-password setting is required for SSL.

Format of the password file. This can be AES if password file was created
keystore-password-
TEXT using flue-ng password command. TEXT indicates the password is in
file-type
clear text.

Space-separated list of SSL/TLS protocols to exclude. SSLv3 will always be


exclude-protocols SSLv3
excluded in addition to the protocols specified.

ipFilter false Set this to true to enable ipFiltering for netty

ipFilter.rules Define N netty ipFilter pattern rules with this config.

Ejemplo para el agente llamado a1:

a1.sources = r1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.channels = c1
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 4141

Thrift Source
Escucha en el puerto Thrift y recibe eventos de flujos externos de clientes Thrift. Cuando se empareja con el
ThriftSink incorporado en otro (salto anterior), el agente Flume, puede crear topologas de coleccin en
niveles. Las propiedades requeridas estn en negrita

Property Name Default Description

channels

type The component type name, needs to be thrift

bind hostname or IP address to listen on

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 41
Pgina 41
Tecnologas Big Data

Property Name Default Description

port Port # to bind to

threads Maximum number of worker threads to spawn

selector.type

selector.*

interceptors Space separated list of interceptors

interceptors.*

a1.sources = r1
a1.channels = c1
a1.sources.r1.type = thrift
a1.sources.r1.channels = c1
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 4141

Exec Source
Exec fuente ejecuta un comando Unix dado en la puesta en marcha y espera que el proceso para producir
continuamente datos de salida estndar (stderr simplemente se descarta, a menos que la propiedad logStdErr
se establece en true). Si el proceso sale por cualquier razn, la fuente tambin sale y no producir ms
datos. Esto significa configuraciones tales como gato [nombre tubera] o cola -
F [archivo] se va a producir los resultados deseados donde como fecha probablemente no - los dos
primeros comandos producir flujos de datos en tanto que la ltima produce un evento nico y salidas.

a1.sources = r1
a1.channels = c1
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /var/log/secure
a1.sources.r1.channels = c1

Property
Default Description
Name
channels

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 42
Pgina 42
Tecnologas Big Data

Property
Default Description
Name
type The component type name, needs to be exec
command The command to execute
A shell invocation used to run the command. e.g. /bin/sh -c.
shell Required only for commands relying on shell features like
wildcards, back ticks, pipes etc.
restartThrottle 10000 Amount of time (in millis) to wait before attempting a restart
restart false Whether the executed cmd should be restarted if it dies
logStdErr false Whether the commands stderr should be logged
The max number of lines to read and send to the channel at a
batchSize 20
time
selector.type replicating replicating or multiplexing
selector.* Depends on the selector.type value
interceptors Space-separated list of interceptors
interceptors.*

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 43
Pgina 43
Tecnologas Big Data

Apache Kafka

Apache Kafka es un sistema de mensajera de publicacin-suscripcin rpido,


escalable, duradero y tolerante a fallos. Kafka se utiliza a menudo en lugar de los
message brokers tradicionales como JMS y AMQP debido a su mayor rendimiento,
fiabilidad y replicacin.

QUE HACE KAFKA

Apache Kafka soporta una amplia gama de casos de uso como un sistema de
mensajera de uso general para escenarios en los que es importante el alto
rendimiento, la entrega fiable y la escalabilidad horizontal.
Kafka trabaja en combinacin con Apache Storm, Apache HBase y Apache Spark
para el anlisis en tiempo real y la renderizacin de datos en Streaming, los casos
de uso comn incluyen:

Procesamiento de secuencias (Streamins)


Seguimiento de la actividad del sitio web
Recopilacin y seguimiento de mtricas
Agregacin de registros
Registro en logs

Como Funciona - Componentes

Topics

Los temas consisten en una o ms particiones. Kafka agrega nuevos mensajes a


una particin en una secuencia ordenada e inmutable. A cada mensaje de un tema
se le asigna un ID secuencial nico, denominado desplazamiento.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 44
Pgina 44
Tecnologas Big Data

Productores

Los productores de Kafka


publican mensajes a los Topics. El
productor determina qu mensaje
asignar a qu particin dentro del topic. La
asignacin se puede hacer de una manera
round-robin para balancear la carga, o
puede ser basada en una funcin
semntica de la particin.

Consumidores

Los consumidores de Kafka


realizan un seguimiento de los mensajes que ya se han consumido, o procesados, mediante
el seguimiento de un desplazamiento, un nmero de identificacin secuencial que identifica
de forma exclusiva un mensaje dentro de una particin. Debido a que Kafka retiene todos los
mensajes en disco durante un tiempo configurable, los Consumidores pueden rebobinar o
saltar a cualquier punto de una particin simplemente suministrando un valor de
compensacin.

Brokers y Clusters

Un Cluster de Kafka consiste en uno o ms Brokers (procesos de servidor). Los productores


envan mensajes al Cluster Kafka, que a su vez les sirve a los Consumidores.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 45
Pgina 45
Tecnologas Big Data

Performance

Las particiones de los topics proporcionan paralelismo dentro de un tipoc. Adems, como las
escrituras en una particin son secuenciales, el nmero de bsquedas de disco duro se
minimiza. Esto reduce la latencia y aumenta el rendimiento.
Los brokers de Kafka escalan y se desempean bien en parte porque los corredores no son
responsables de mantener un registro de los mensajes que se han consumido. El
consumidor es responsable de ese El mensaje.
En los sistemas de mensajera tradicionales como JMS, el Broker tiene esta responsabilidad,
lo que limita severamente la capacidad del sistema para escalar a medida que aumenta el
nmero de consumidores. El diseo de Kafka elimina el potencial de contrapresin cuando
los consumidores procesan mensajes a diferentes velocidades.
Para los consumidores Kafka, el seguimiento de los mensajes que se han consumido es
simplemente una cuestin de seguimiento del offset (compensacin) - el identificador
secuencial que identifica de forma nica un mensaje dentro de una particin. Debido a que
Kafka retiene todos los mensajes en el disco (durante una cantidad configurable de tiempo),
los consumidores pueden rebobinar o saltar a cualquier punto de una particin simplemente
proporcionando un valor de compensacin.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 46
Pgina 46
Tecnologas Big Data

Arquitectura de KAFKA

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 47
Pgina 47
Tecnologas Big Data

Apache Storm

Storm es potente para escenarios que requieren anlisis continuos, predicciones en tiempo
real y monitoreo continuo de operaciones. Eliminando la necesidad de disponer de silos
dedicados, las empresas que utilizan Storm se benefician de ahorros de costes (al acceder a
los mismos conjuntos de datos que otros motores y aplicaciones del mismo cluster) con
niveles de seguridad, gobernanza de datos y operaciones (empleando los mismos recursos
informticos gestionados) por Yarn en Hadoop
Storm posee una topologa computacional de nodos que determina cmo las tuplas se
procesan, transforman, agregan, almacenan o vuelven a emitir a otros nodos de la topologa
para su procesamiento posterior.
Una tupla puede contener objetos de cualquier tipo.
Algunos Casos de Uso:

- Casos de Uso "Prevenir" Casos de uso "Optimizar"


Servicios Fraude de valores, Riesgos Enrutamiento de pedidos,
financieros operacionales y violaciones Precios
de cumplimiento
Telecom Violaciones de seguridad, Asignacin de ancho de banda,
cortes de red Atencin al cliente
Al por menor Validacin de stock Ofertas, Precios
Fabricacin Mantenimiento preventivo, Optimizacin de la cadena de
Garanta de calidad suministro, Reduccin del
tiempo de inactividad de la
planta
Transporte Supervisin de Rutas, Precios
controladores,

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 48
Pgina 48
Tecnologas Big Data

Mantenimiento predictivo
Web Fallos de aplicacin, Contenido personalizado
Problemas operativos

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 49
Pgina 49
Tecnologas Big Data

Como Funciona - Componentes

Posee un conjunto de nodos que conforman el trabajo en conjunto

Nodo Nimbus (nodo maestro, similar al Hadoop JobTracker):


Carga los clculos para su ejecucin
Distribuye cdigo a travs del clster
Inicia los nodos worker (trabajadores) en todo el clster
Monitorea el clculo y reasigna a los trabajadores segn sea necesario

Nodos ZooKeeper - coordina el clster Storm

Nodos Supervisor - se comunica con Nimbus a travs de Zookeeper, inicia y


detiene a los trabajadores de acuerdo con las seales de Nimbus

Brokers y Clusters

tuplas - una lista ordenada de elementos.


Streams - una secuencia ilimitada de tuplas.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 50
Pgina 50
Tecnologas Big Data

Spouts: Fuentes de stream en un clculo (por ejemplo, una API de Twitter, Log), se
puede trabajar alrededor de un Spout constantemente y ajustarlo a sua necesidades.

Bolt - Un servidor Kafka que gestiona la persistencia y la replicacin de los datos del
mensaje (es decir, el registro de confirmacin).

Procesan corrientes de entrada y producen corrientes de salida. Pueden ejecutar funciones,


filtrar, agregar o unir datos, o hablar con bases de datos.

Topologas - el clculo global, representado visualmente como una red de spouts y


bolts (como en el diagrama siguiente)

Los usuarios de Storm definen topologas sobre cmo procesar los datos cuando se emiten
desde una fuente, Cuando los datos entran, se procesa y los resultados se pasan a otros
Bolts o se almacenan en Hadoop.

TOPOLOGAS DE STORM

Un clster Storm es similar a un clster Hadoop. Mientras que en Hadoop se ejecutan


"trabajos de MapReduce", en Storm se ejecutan "topologas". "jobs" y "topologas" son

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 51
Pgina 51
Tecnologas Big Data

diferentes - una diferencia clave es que un trabajo MapReduce eventualmente termina,


mientras que una topologa procesa mensajes para siempre (o hasta matar eso).

Hay dos tipos de nodos en un clster de Tormenta: el nodo maestro y los nodos de trabajo. El
nodo maestro ejecuta un daemon llamado "Nimbus" que es similar al "JobTracker" de
Hadoop. Nimbus es responsable de distribuir el cdigo alrededor del clster, asignar tareas a
las mquinas y supervisar las fallas.

Cada nodo de trabajo ejecuta un daemon llamado "Supervisor". Escucha el trabajo asignado
a su mquina y inicia y detiene los procesos de trabajo segn lo dictado por Nimbus. Cada
proceso de trabajo ejecuta un subconjunto de una topologa; Una topologa en ejecucin
consiste en muchos procesos de trabajo extendidos a travs de muchas mquinas.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 52
Pgina 52
Tecnologas Big Data

KAFKA Y STORM
Una refinera de petrleo toma petrleo crudo, lo destila, lo procesa y lo refina en productos
terminados tiles, como el gas que compramos en la bomba.

Podemos pensar en Storm con Kafka como una refinera similar, pero los datos son la
entrada. Una refinera de datos en tiempo real convierte los datos de flujo en bruto en
productos de datos terminados, permitiendo nuevos casos de uso y modelos de negocio para
la empresa.

Mientras Storm procesa Streaming a escala, Apache Kafka procesa mensajes a


escala. Kafka es un sistema de mensajera en tiempo real distribuido que brinda garantas de
durabilidad y tolerancia a fallos.
Storm y Kafka se complementan naturalmente entre s, y su potente cooperacin permite la
analtica en tiempo real para datos en movimiento rpido.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 53
Pgina 53
Tecnologas Big Data

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 54
Pgina 54
Tecnologas Big Data

Introduccin conceptual al oleoducto de procesamiento de eventos

En un pipeline de procesamiento de eventos, podemos ver cada etapa como un paso


construido especficamente que realiza algn procesamiento en tiempo real contra corrientes
de eventos ascendentes para el anlisis posterior. Esto produce flujos de eventos cada vez
ms ricos, a medida que los datos fluyen por la tubera

Flujo de eventos sin procesar de muchas fuentes,


Aquellos se procesan para crear eventos de inters, y
Los eventos de inters se analizan para detectar eventos significativos.

Estos son algunos usos tpicos para este proceso de procesamiento de tuberas:

Filtrado de alta velocidad y comparacin de patrones


Enriquecimiento contextual en marcha
KPIs en Tiempo Real, Anlisis Estadstico, Bases y Notificacin
Anlisis predictivo
Acciones y Decisiones

CONSTRUIR LA REFINERA DE DATOS CON TOPOLOGAS


Para realizar clculos en tiempo real en Storm, creamos "topologas".

Una topologa es una grfica de un clculo que contiene una red de nodos llamada "Spouts" y "Bolts".

En una topologa Storm, Spout es la fuente de datos Arroyos y un Bolt tiene la lgica de negocio para analizar y
procesar esos flujos.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 55
Pgina 55
Tecnologas Big Data

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 56
Pgina 56
Tecnologas Big Data

El foco para Apache Storm y Kafka es facilitar a los desarrolladores ingerir y


publicar flujos de datos de las topologas de Storm.

La primera topologa ingesta flujos de datos sin procesar de Kafka y ventiladores a


HDFS, que sirve como almacn persistente para los eventos crudos.

A continuacin, un filtro Bolt emite el evento enriquecido a un Kafka Bolt


descendente que lo publica en un Kafka Topic.

A medida que los eventos fluyen a travs de estas etapas, el sistema puede
realizar un seguimiento del linaje de datos que permite el desglose de los eventos
agregados a sus componentes y puede utilizarse para el anlisis forense.

En una arquitectura de refineras de varias etapas, proporcionar recursos de


clster correctos a la parte ms intensa de las etapas de procesamiento de datos
es muy importante, un "planificador de aislamiento" (Isolation Scheduler) en
Storm proporciona la capacidad de compartir un clster de manera fcil y segura
entre muchas topologas.

En resumen, la arquitectura de procesamiento de datos de estilo refinera le


permite:
Agregue incrementalmente ms topologas / casos de uso
Toque en flujos de datos crudos o refinados en cualquier etapa del proceso
Modularice sus recursos claves del clster a la fase de procesamiento ms intensa de
la tubera.

Apache NIFI
Puesto simplemente NiFi fue construido para automatizar el flujo de datos entre
sistemas.
Este espacio problemtico ha existido desde que las empresas tenan ms de un
sistema, donde algunos de los sistemas creaban datos y algunos de los sistemas
consuman datos. Los problemas y patrones de solucin que surgieron han sido
discutidos y articulados extensivamente.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 57
Pgina 57
Tecnologas Big Data

Una forma comprensiva y fcilmente consumida se encuentra en los


Patrones de Integracin Empresarial 1

A lo largo de los aos, el flujo de datos ha sido uno de esos males necesarios en
una arquitectura. Ahora bien, hay una serie de movimientos activos y en rpida
evolucin haciendo el flujo de datos mucho ms interesante y mucho ms vital
para el xito de una empresa determinada. estos incluyen cosas como SOA
service oriented architecture [ soa ] , el surgimiento de la api 2, internet de las
cosas , y big data

Adems, el nivel de rigor necesario para el cumplimiento, la privacidad y la


seguridad est en constante aumento. Incluso con todos estos nuevos conceptos
surgiendo, los patrones y las necesidades de flujo de datos siguen siendo en gran
medida los mismos.
Las diferencias principales son entonces el alcance de la complejidad, la tasa de
cambio necesaria para adaptarse, Nifi est construido para ayudar a hacer frente
a estos desafos de flujo de datos modernos.

1Gregor Hohpe. Patrones de Integracin Empresarial [online]. Obtenido: 27


Dec 2014, from:http://www.enterpriseintegrationpatterns.com/

2 Eric Savitz. Bienvenido a la API Economy [online]. Forbes.com. Obtenido: 27


Dec 2014, from:http://www.forbes.com/sites/ciocentral/2012/08/29/welcome-
to-the-api-economy/

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 58
Pgina 58
Tecnologas Big Data

Apache NIFI Componentes Bsicos


Los conceptos fundamentales de diseo de NiFi se relacionan estrechamente
con las ideas principales de la Programacin Basada en Flujo3. stos son
algunos de los principales conceptos de NiFi y cmo se mapean a FBP:

Termino Termino Descripcin


NIFI FBP

FlowFile Paquete Un FlowFile representa cada objeto movindose a


de travs del sistema y para cada uno, NiFi realiza un
informaci seguimiento de un mapa de cadenas de atributos de
n par clave / valor y su contenido asociado de cero o
ms bytes.

Procesad Caja Los procesadores realizan realmente el


or negra trabajo. En [eip] trminos un procesador est haciendo
FlowFile alguna combinacin de enrutamiento de datos,
transformacin o mediacin entre sistemas. Los
procesadores tienen acceso a los atributos de un
determinado FlowFile y su flujo de contenido. Los
procesadores pueden operar en cero o ms FlowFiles
en una determinada unidad de trabajo y comprometer
ese trabajo o revertir.

3 Wikipedia. Programacin basada en flujo [online]. Obtenido: 28 Dec 2014,


from:http://en.wikipedia.org/wiki/Flow-based_programming#Concepts

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 59
Pgina 59
Tecnologas Big Data

Conexin Bounded Las conexiones proporcionan el enlace real entre los


Buffer procesadores. Estos actan como colas y permiten que
varios procesos interacten a diferentes
velocidades. Estas colas pueden priorizarse
dinmicamente y pueden tener lmites superiores en
la carga, que permiten la contrapresin.

Controlad Programa El controlador de flujo mantiene el conocimiento de


or de dor cmo los procesos conectan y gestionan los
flujo subprocesos y las asignaciones de los mismos que
utilizan todos los procesos. El controlador de flujo
acta como intermediario facilitando el intercambio de
FlowFiles entre procesadores.

Grupo de Subred Un grupo de procesos es un conjunto especfico de


procesos procesos y sus conexiones, que pueden recibir datos a
travs de puertos de entrada y enviar datos a travs
de puertos de salida. De esta manera, los grupos de
procesos permiten la creacin de componentes
completamente nuevos simplemente por la
composicin de otros componentes.

Apache NIFI Arquitectura

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 60
Pgina 60
Tecnologas Big Data

Servidor web
El propsito del servidor web es alojar el API de control y comando basado en
HTTP de NiFi.
Controlador de flujo
El controlador de flujo es el cerebro de la operacin. Proporciona subprocesos
para que las extensiones se ejecuten y administre la programacin de
cundo las extensiones reciben recursos para ejecutarse.
Extensiones
Hay varios tipos de extensiones de NiFi que se describen en otros
documentos. El punto clave aqu es que las extensiones operan y se ejecutan
dentro de la JVM.
Depsito FlowFile
El Repositorio de Flujo de Flujo es donde NiFi realiza un seguimiento del
estado de lo que sabe acerca de un Flujo dado que est actualmente activo.
El mtodo predeterminado es un registro persistente de escritura previa
situado en una particin de disco especificada.

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 61
Pgina 61
Tecnologas Big Data

Contenido Repositorio
El repositorio de contenido es donde viven los bytes de contenido real de un
determinado FlowFile. La implementacin del repositorio es enchufable. El
enfoque predeterminado es un mecanismo bastante simple, que almacena
bloques de datos en el sistema de archivos. Se puede especificar ms de una
ubicacin de almacenamiento del sistema de archivos para obtener
diferentes particiones fsicas activadas para reducir la contencin en
cualquier volumen individual.
Repositorio de Proveniencia
El repositorio de procedencias es donde se almacenan todos los datos de
eventos de procedencia. La construccin del repositorio se puede conectar
con la implementacin predeterminada para utilizar uno o ms volmenes de
disco fsico. Dentro de cada ubicacin, los datos del evento se indexan y se
pueden buscar como la metadata que es.

Algunos de los beneficios del enfoque de flujos son:


Se presta bien a la creacin visual y gestin de grficos dirigidos de
procesadores
Es inherentemente asncrono, lo que permite un rendimiento muy alto y un
almacenamiento en bfer natural, incluso cuando el proceso y las tasas de flujo
fluctan
Promueve el desarrollo de componentes cohesivos y ligeramente acoplados
que luego pueden ser reutilizados en otros contextos y promueve unidades
comprobables

Luis Antonio Chavez Olaya


Lder Tcnico de Gestin de Proyectos de Inteligencia de Negocios y Big Data
Tecnologas Big DataPgina 62
Pgina 62

Vous aimerez peut-être aussi