Big Data
Big Data
(grandes datos, grandes volúmenes de datos o macrodatos”)
Supone la confluencia de una multitud de tendencias tecnológicas que
venían madurando desde la primera década del siglo XXI, y que se han
consolidado durante los años 2011 a 2013,
Big Data
cuando han explosionado e irrumpido con gran fuerza en
organizaciones y empresas, en particular, y en la sociedad, en general:
movilidad, redes sociales, aumento de la banda ancha y reducción de
su coste de conexión a Internet, medios sociales (en particular las redes
sociales),
Internet de las cosas, geolocalización, y de modo muy significativo la
computación en la nube (cloud computing).
Los grandes datos o grandes volúmenes de datos han ido creciendo de
modo espectacular.
Durante 2011, se crearon 1,8 zettabytes de datos (1 billón de
gigabytes) según la consultora IDC, y esta cifra se dobla cada dos
años.
Un dato significativo, Walmart, la gran cadena de almacenes de los
Estados Unidos, posee bases de datos con una capacidad de 2,5
petabytes, y procesa más de un millón de transacciones cada hora.
Los Big Data están brotando por todas partes y utilizándolos
adecuadamente proporcionarán una gran ventaja competitiva a las
organizaciones y empresas.
En cambio, su ignorancia producirá grandes riesgos en las
organizaciones y no las hará competitivas.
Para ser competitivas en el siglo actual.
“Es imperativo que las organizaciones persigan agresivamente la
captura y análisis de estas nuevas fuentes de datos para alcanzar los
conocimientos y oportunidades que ellas ofrecen”.
La primera definición que daremos es la de Adrian Merv, vicepresidente
de la consultora Gartner, que en la revista Teradata Magazine, del
primer trimestre de 2011, define este término como:
“Big Data excede el alcance de los entornos de hardware de uso común
y herramientas de software para capturar, gestionar y procesar los datos
dentro de un tiempo transcurrido tolerable para su población de
usuarios”
Otra definición muy significativa es del McKinsey Global Institute, que
en un informe muy reconocido y referenciado, de mayo de 2011, define
el término del siguiente modo:
“Big Data se refiere a los conjuntos de datos cuyo tamaño está más allá
de las capacidades de las herramientas típicas de software de bases de
datos para capturar, almacenar, gestionar y analizar”.
Esta definición es, según McKinsey, intencionadamente subjetiva e
incorpora una definición cambiante, “en movimiento” de cómo “de
grande” necesita ser un conjunto de datos para ser considerado Big
Data:
Es decir, no se lo define en términos de ser mayor que un número dado
de terabytes (en cualquier forma, es frecuente asociar el término Big
Data a terabytes y petabytes).
Suponemos, dice McKinsey, que a medida que la tecnología avanza en
el tiempo, el tamaño de los conjuntos de datos que se definen con esta
expresión también crecerá.
De igual modo, McKinsey destaca que la definición puede variar para
cada sector, dependiendo de cuáles sean los tipos de herramientas de
software normalmente disponibles;
y cuáles, los tamaños típicos de los conjuntos de datos en ese sector o
industria.
Otra fuente de referencia es la consultora tecnológica IDC3
que apoyándose en estudios suyos propios, considera que:
“Big Data es una nueva generación de tecnologías, arquitecturas y
estrategias diseñadas para capturar y analizar grandes volúmenes de
datos provenientes de múltiples fuentes heterogéneas a una alta
velocidad con el objeto de extraer valor económico de ellos”.
Otra fuente de referencia es la consultora tecnológica IDC3
La empresa multinacional de auditoría Deloitte lo define como:
“El término que se aplica a conjuntos de datos cuyo volumen supera la
capacidad de las herramientas informáticas (computación) de uso
común, para capturar, gestionar y procesar datos en un lapso de tiempo
razonable.
Los volúmenes de Big Data varían constantemente, y actualmente
oscilan entre algunas decenas de terabytes hasta muchos petabytes
para un conjunto de datos individual”.
Otra definición muy acreditada por venir de la mano de la consultora Gartner
es:
“Big Data son los grandes conjuntos de datos que tiene tres características
principales: volumen (cantidad), velocidad (velocidad de creación y
utilización) y variedad (tipos de fuentes de datos no estructurados, tales como
la interacción social, video, audio, cualquier cosa que se pueda clasificar en
una base de datos)”.
Estos factores, naturalmente, conducen a una complejidad extra de los Big
Data;
en síntesis “Big Data’ es un conjunto de datos tan grandes como diversos que
rompen las infraestructuras de TI tradicionales”
El término “Big data” suele aplicarse a conjuntos de datos que superan
la capacidad del software habitual para ser capturados, gestionados y
procesados en un tiempo razonable y por los medios habituales de
procesamiento de la información.
Este término suele referirse a los siguientes tipos de datos:
El término Big Data hace referencia al gran volumen de datos que se
están produciendo continuamente a través de los medios electrónicos.
Esta producción de datos proviene de múltiples fuentes, son de
diferente naturaleza y además se producen a gran velocidad.
Con esta imagen nos podemos hacer una idea de cómo va creciendo la
producción de información, la velocidad y algunas de la fuentes a través
de las que se produce.
El concepto de Big Data fue introducido por primera vez por Roger
Magoulas de O’Reilly en 2005 y lo hizo para definir aquella gran
cantidad de datos que no podía gestionarse por medio de técnicas y
procesos tradicionales debido a su complejidad y tamaño.
A partir de esa definición, el concepto de Big Data se estudió desde
distintos puntos de vista, ya que permitió indagar en las implicaciones
que existían desde los distintos campos involucrados.
En esos momentos se determinó que el Big Data constaba de tres
facetas diferentes, denominadas las tres V de Big Data:
volumen,
velocidad y
variedad.
Sin embargo, con la evolución en el tiempo, el uso y el procesamiento
de los mismos se ha establecido que estos datos deben tener otras
características que son
veracidad,
valor,
variabilidad y
visualización.
Las 7 V del Big Data
Las 7 V a las que se hace referencia en el entorno del tratamiento de
los grandes datos son las siguientes:
Volumen: hace alusión a la gran producción de datos a nivel mundial.
Esta gran cantidad de datos sirve para generar información que, a su
vez, se utiliza para generar conocimiento.
Los datos informáticos se miden en bits, que es la unidad mínima de
información. Un bit almacena un cero o un uno.
La siguiente unidad de medida es el byte que corresponden a 8 bits.
Y a partir de esa medida se establecen las siguientes unidades de
medidas de información:
Velocidad: hace referencia a la rapidez con la que se dispone de los
datos donde sea y cuando sea (anytime-anywhere).
Se dispone de los datos en tiempo real, en el mismo momento en el que
se están produciendo, por lo que es muy importante la velocidad del
tratamiento de esos datos.
A mayor velocidad mayor validez de la información que se pueda
obtener.
Variedad: los datos provienen de diferentes fuentes y pueden ser
estructurados o no estructurados.
o Los estructurados son aquellos que están encorsetados en una
estructura definida, se dispone de los mismos datos para todos los
elementos, por ejemplo, en una base de datos de empleados (nombre,
edad, titulación, años de servicio, etc.). o Los datos no estructurados
son aquellos que no tienen una estructura definida, como pueden ser
imágenes, vídeos o ficheros de sonido.
Veracidad: los datos deben ser reales, deben corresponder con lo que
señalan que son y no con datos falsos.
La depuración de los datos y la limpieza de las bases de datos de las
organizaciones o instituciones es un paso previo a la toma de decisiones
sobre la base de los datos de los que dispone.
Valor: toda la producción y procesamiento de datos, los análisis y
decisiones deben conducir a acciones que repercutan positivamente en
la sociedad, en las organizaciones o instituciones que las procesan.
Variabilidad: la variabilidad de los datos se refiere a la variación que
pueden tener los datos, los cambios que experimentan y que impactan
en la homogeneización de los mismos, así como las posibilidades de
predicción.
Visualización: característica definitoria de los grandes datos. En este
caso, toma mucho significado la expresión «una imagen vale más que
mil palabras».
Poder traducir la ingente cantidad de datos y los resultados de los
análisis a esquemas, diagramas o gráficos que resuman o sinteticen la
información obtenida de los análisis de los macrodatos o Big Data es
otra de las necesidades que han surgido en este campo.
Es mucha la información que se puede transmitir con las herramientas
de visualización de datos, las cuales permiten percibir tendencias y
facilitar la toma de decisiones.
Tratamiento de la información
Con la presencia de la IOT (Internet de las cosas) se fortifica mucho la
producción de los grandes volúmenes de datos.
Sin embargo, lo más importante no es el volumen de datos (si hay más o
menos teras), sino el aprovechamiento de los mismos con el tratamiento
y análisis que se haga de ellos para que se pueda obtener información
en un primer momento y luego construir el conocimiento que influirá en
las decisiones que se espera repercutan en un mayor bienestar para
todos en general.
Tratamiento de la información
Es por eso que Big Data no trata solo el término de dato, sino que
también está relacionada con las técnicas que pueden mejorar el
manejo de las 7 V para que incrementen su valor.
Estas V implican que exista un tratamiento de los datos enfocándose en
distintos aspectos:
El modo en el que se capturan los datos junto con la selección de los
datos que se capturan. » El modo de almacenamiento de los datos que
han sido capturados. »
Una vez almacenados, deberán existir herramientas que permitan una
búsqueda adecuada de los datos.
» En el caso de que sea necesario, esos datos han de ser compartidos
entre distintos entornos. »
El último aspecto a tener en cuenta cuando se tiene esa gran cantidad
de datos es el modo en el que van a ser visualizados.
Es decir, cada vez que se hace necesaria la extracción de resultados en
base a los datos básicos, se hace necesaria una transformación que
permita obtener conclusiones.
El proceso básico de esa transformación es el siguiente: partiendo de
los datos sin tratar, lo que se hace es un preprocesado para llevar a
cabo una concreción de los mismos para que luego se pueda realizar un
análisis de correlación que permita una extracción exhaustiva de
información que proporcionará una serie de resultados.
El objetivo del análisis de datos es examinar grandes cantidades de
datos con una variedad de clases, con el fin de descubrir información
que sea relevante y útil para la empresa, de manera que le permita
tomar las mejores decisiones y obtener ventajas competitivas en
comparación con otras de su clase.
Para ello se utilizan técnicas y herramientas especializadas para el
manejo de grandes bases de datos.
El procesamiento comienza desde la captura del dato, el procesamiento
y tratamiento del mismo para la organización, estructuración e
integración si los datos provienen de diferentes fuentes y
establecimiento de relaciones con otros, los análisis del conjunto de
relaciones, también llamado Data Mining, y la producción de información
y conocimiento como resultado de todo el proceso.
Para que el proceso llegue a buen fin, es necesario abordar una serie
de retos.
En cuanto a la captura, se hace necesario un control dependiendo del
tipo de datos, ya que las transformaciones que se tienen que aplicar en
cada caso no son las mismas.
Por ejemplo, la información que se debe tratar en una imagen y en un
PDF es distinta.
En un PDF se puede tener que realizar un análisis del tamaño según el
número de páginas que contiene, que en una imagen nunca se podría
realizar dado que no contiene número de páginas, pero, por el contrario,
sí que existe un tamaño que será su dimensión, alto y ancho.
Cuando los datos preprocesados necesitan organización, en el proceso
de análisis nos encontramos en muchos casos con que este proceso se
debe realizar secuencialmente y que se hace necesaria una máquina
con gran potencia de cálculo y gran cantidad de memoria que pueda
soportarlo.
En el sistema de integración de los datos tienen que tener las
conexiones suficientes como para que se puedan enlazar y se puede
hacer muy complejo si, además, los datos que se quieren enlazar son
de formatos muy heterogéneos.
También hay que tener en cuenta que cuando se realiza la correlación
de los datos puede ocurrir que el tiempo para realizar la sincronización
puede ser crítico en el procesamiento.
En el proceso de análisis, también denominado Data Mining, hay que
tener en cuenta que para la extracción de los resultados de información
es necesario el uso de modelos o patrones que hagan la extracción de
información de esos datos, ya sea por su propia estructura o por sus
conexiones.
Tecnologías de Big Data
Las tecnologías de Big Data abarcan dos grandes tipos de campos: el
campo operacional y el campo analítico, en ciertos ámbitos también
denominados tecnologías operacionales y tecnologías de la información.
Las técnicas operacionales se centran en la carga en tiempo real e
interactivo de datos capturándolos y almacenándolos.
Tecnologías de Big Data
Y, por otro lado, las técnicas analíticas permiten el análisis en
retrospectiva de datos complejos.
Aunque estas dos tecnologías son dispares, se complementan para
integrarse en herramientas que permiten el tratamiento masivo de datos,
formando así lo que se conoce como arquitectura de las tecnologías Big
Data.
Las exigencias que demandan cada una de estas herramientas son
contrapuestas.
En el caso de las herramientas operacionales es necesario que tengan
un gran rendimiento, que permitan peticiones concurrentemente y que
sean escalables, es decir, que puedan adaptarse a la cantidad de
información demandada aunque sean varias las peticiones realizadas.
En cambio, en las herramientas analíticas lo que se demanda es que
sean capaces de gestionar consultas complejas con un rendimiento muy
alto en su salida, dando sus resultados en tiempos mínimos.
Infraestructura del Big Data
Para dar soporte al procesamiento de Big Data es necesario crear una
infraestructura de componentes que permita su tratamiento. Se pueden
mencionar las siguientes:
» Aplicaciones Big Data: son aplicaciones que se adaptan a entornos
concretos para dar soporte a problemas específicos.
» Herramientas de creación de informes y de visualización: facilitan la
transmisión de la información y conocimiento obtenido de los análisis de
los datos y su comunicación a los usuarios finales. En el ámbito de la
educación sería, por ejemplo, para el profesor, el alumno o el director del
centro o el ministro de educación
Análisis (tradicional y avanzado): incluye todos los procedimientos que
se han señalado en el apartado técnicas de Big Data.
Las herramientas de análisis permiten extraer la información de los
almacenes y hacer que sea comprensible al ser humano.
Pueden ser de análisis predictivo, que son aquellas que permiten, tras el
estudio de datos que han sucedido en un tiempo determinado, predecir
acontecimientos futuros.
También pueden ser de análisis de sentimiento o de opinión, que
permiten extraer el contenido de un texto indicando realmente su sentido
de la opinión o la subjetividad que quiere reflejar.
Data Warehouse y herramientas analíticas: los Data Warehouse son
estructuras de almacenamiento de datos propios de las instituciones u
organizaciones muy comunes antes de que existieran las herramientas
de Big Data.
En estas estructuras los datos se encuentran organizados y bien
estructurados. En muchos casos actúan como sistema o herramienta de
seguridad de los mismos.
Bases de datos y herramientas para la organización: permiten la
validación y la estructuración de grandes cantidades de datos en
agrupaciones de datos, denominadas colecciones.
Dentro de estas herramientas se encuentran las herramientas ETL
(Extraction Transformation Load) o herramientas de extracción,
trasformación y carga de información, servicios de flujo de datos,
servicios de serialización, sistemas de archivos distribuidos y servicios
de coordinación, estos dos últimos utilizados para desarrollar sistemas
que no se encuentran directamente en una máquina, sino que se
utilizan un conjunto de máquinas interconectadas que funcionan como
una unidad.
Datos estructurados y no estructurados en bases de datos
operacionales: puede incluir todos los datos provenientes de todas las
fuentes posibles.
» Herramientas de seguridad: las que se aplican a un sistema de Big
Data no difieren mucho de los sistemas tradicionales. Los puntos
críticos son los siguientes:
o La encriptación y cifrado de la información siempre que las bases de
datos sean sensibles. o Controlar niveles de acceso y permisos de
usuario de las herramientas de análisis. o Encriptación de
comunicaciones y controles de acceso desde sistemas externos al que
se encuentra el sistema Big Data.
Herramientas de redundancia de datos: estas herramientas de
redundancia permiten que el sistema pueda proporcionar el mismo
sistema de respuesta aunque parte del sistema haya caído o se haya
producido algún tipo de error.
En la siguiente imagen se representan la cantidad de herramientas, las
aplicaciones y los tipos de desarrollo que conforman la infraestructura
del Big Data en la actualización para el 2016.
PLATAFORMA DE CÓDIGO ABIERTO HADOOP
Hadoop es una infraestructura digital de desarrollo creada en código
abierto bajo licencia Apache.
Se trata de un proyecto construido y utilizado por una gran variedad de
programadores que usan Java.
PLATAFORMA DE CÓDIGO ABIERTO HADOOP
Doug Cutting inició su desarrollo cuando estaba en Yahoo! inspirándose
en tecnologías liberadas por Google, concretamente MapReduce y
Google File System (GFS), con el fin de utilizarla como base para un
motor de búsqueda distribuido.
Tras dedicarse a tiempo completo a su desarrollo y convertir a Yahoo! en
el principal contribuidor del proyecto, Cutting abandonó Yahoo! para
unirse a Cloudera, una compañía cuya oferta de productos gira
íntegramente en torno a Hadoop.
La importancia de Hadoop radica básicamente en que permite
desarrollar tareas muy intensivas de computación masiva, dividiéndolas
en pequeñas piezas y distribuyéndolas en un conjunto de máquinas
todo lo grande que se quiera.
El análisis se realiza en petabytes de datos, en entornos distribuidos
formados por muchas máquinas sencillas.
Se trata de una propuesta de valor muy razonable en los tiempos
hiperconectados que vivimos, y que utilizan hasta la saciedad empresas
como Google, Yahoo!, Tuenti, Twitter, eBay o Facebook.
Pero no son las únicas: el uso de Hadoop se está popularizando a gran
velocidad en todo tipo de empresas
Hadoop Distributed File System (HDFS)
El tema de la computación de alto rendimiento (HPC o High
Performance Computing) lleva ya años dando vueltas, y hay soluciones
ya maduras y establecidas (tanto gestores de colas como Condor,
Oracle Grid Engine, Torque en la parte de cluster como Globus o Glite
en la parte de grid computing).
Lo que realmente aporta Hadoop es una capacidad de gestionar
grandes cantidades de datos.
Hadoop Distributed File System (HDFS)
Los clúster tradicionales están orientados a tener que dar mucha
potencia de cálculo gestionando relativamente poco espacio en disco,
pero
¿qué pasa cuando la base de datos tiene 100 Tb o 1 Pb?
En estos casos se necesita algo más potente como Hadoop.
El HDFS (Hadoop Distributed File System) es quizás el componente
principal de Hadoop, ya que permite crear sistemas de ficheros
empleando servidores “commodity” ofreciendo redundancia, capacidad
y rendimiento (solo para ficheros muy grandes).
Y lo mejor de todo es que estos servidores commodity son los que
hacen la computación, permitiendo el paradigma de “llevar los datos a la
computación”, uno de los factores principales del rendimiento de
Hadoop.
Hadoop MapReduce
Map/Reduce es un distribuidor de tareas que encaja perfectamente
con HDFS y que permite de forma bastante sencilla el repartir trozos
de tareas entre el cluster con una curva de aprendizaje relativamente
sencilla (si lo que se va a analizar no son ficheros de texto cuesta más,
pero es posible trabajar con vídeo o imágenes).
MapReduce es el núcleo de Hadoop.
El término MapReduce en realidad se refiere a dos procesos
separados que Hadoop ejecuta.
Hadoop MapReduce
El primer proceso es map, el cual toma un conjunto de datos y lo
convierte en otro conjunto, donde los elementos individuales son
separados en tupias (pares de clave/valor).
El proceso reduce obtiene la salida de map como datos de entrada y
combina las tupias en un conjunto más pequeño de las mismas.
Una fase intermedia es la denominada Shuffle la cual obtiene las tupias
del proceso map y determina qué nodo procesará estos datos
dirigiendo la salida a una tarea reduce en específico.
Hadoop Common
Hadoop Common Components son un conjunto de librerías que
soportan varios subproyectos de Hadoop.
APLICACIONES DE DESARROLLO EN HADOOP
Como se deduce de la sección anterior, la plataforma Hadoop puede ser
una poderosa herramienta para manipular grandes conjuntos de datos.
Sin embargo, el núcleo Hadoop - MapReduce - APIs se basa
principalmente en Java, que requiere de programadores capacitados.
Además, es aún más complejo para los programadores desarrollar y
mantener aplicaciones MapReduce para aplicaciones empresariales
que requieren un procesamiento largo y canalizado.
Si se lleva bastante tiempo de programación, se observará que la
historia tiene una forma de repetirse. Por ejemplo, a menudo citamos
XML como
“La venganza de IMS” debido a su naturaleza jerárquica y sistema de
recuperación. En el área del desarrollo del lenguaje Computer, tal como
ensamblador dio lugar a lenguajes estructurados de programación y
luego al desarrollo de lenguajes 3GL y 4GL, así también funciona el
mundo de los lenguajes de programación de aplicación Hadoop.
Para abstraerse de la complejidad del modelo de programación
Hadoop, han surgido varios lenguajes de programación de aplicaciones
que se ejecutan sobre Hadoop.
Además de todo esto, se ha creado un verdadero ecosistema encima
de Hadoop con cosas como HIVE (Datawarehousing), HBase (BD
NoSQL), Pig (Framework) o Mahout (Machine Learning/Datamining)
que hace que en algunos casos el desarrollador ni siquiera tenga que
pegarse con “lo complicado” de Hadoop.
Avro
Es un proyecto de Apache que provee servicios de serialización.
Cuando se guardan datos en un archivo, el esquema que define ese
archivo es guardado dentro del mismo;
de este modo es más sencillo para cualquier aplicación leerlo
posteriormente puesto que el esquema está definido dentro del archivo.
Cassandra
Cassandra es una base de datos no relacional distribuida y basada en
un modelo de almacenamiento de <clave-valor>, desarrollada en Java.
Permite grandes volúmenes de datos en forma distribuida.
Twitter es una de las empresas que utiliza Cassandra dentro de su
plataforma.
Chukwa
Diseñado para la colección y análisis a gran escala de “logs”. Incluye un
toolkit para desplegar los resultados del análisis y monitoreo.
Flume
Tal como su nombre lo indica, su tarea principal es dirigir los datos de
una fuente hacia alguna otra localidad, en este caso hacia el ambiente
de Hadoop. Existen tres entidades principales: sources, decorators y
sinks.
Un source es básicamente cualquier fuente de datos, sink es el destino
de una operación en específico y un decorator es una operación dentro
del flujo de datos que transforma esa información de alguna manera,
como por ejemplo comprimir o descomprimir los datos o alguna otra
operación en particular sobre los mismos.
HBase (NoSQL)
Es una base de datos columnar (column-oriented database) que se
ejecuta en HDFS.
HBase no soporta SQL, ya que no es una base de datos relacional.
Cada tabla contiene filas y columnas como una base de datos
relacional.
HBase (NoSQL)
HBase permite que muchos atributos sean agrupados llamándolos
familias de columnas, de tal manera que los elementos de una familia
de columnas son almacenados en un solo conjunto.
Eso es distinto a las bases de datos relaciónales orientadas a filas,
donde todas las columnas de una fila dada son almacenadas en
conjunto.
Facebook utiliza HBase en su plataforma desde noviembre de 2010.
Hive
Es una infraestructura de data warehouse que facilita administrar
grandes conjuntos de datos que se encuentran almacenados en un
ambiente distribuido.
Hive tiene definido un lenguaje similar a SQL llamado Hive Query
Language (HQL), estas sentencias HQL son separadas por un servicio
de Hive y son enviadas a procesos MapReduce ejecutados en el cluster
de Hadoop.
Jaql
Fue donado por IBM a la comunidad de software libre. Query Language
for JavaScript Object Notation (JSON) es un lenguaje funcional y
declarativo que permite la explotación de datos en formato JSON
diseñado para procesar grandes volúmenes de información.
Para explotar el paralelismo, Jaql reescribe los querys de alto nivel
(cuando es necesario) en querys de “bajo nivel” para distribuirlos como
procesos MapReduce.
Jaql
Internamente el motor de Jaql transforma el query en procesos map y
reduce para reducir el tiempo de desarrollo asociado en analizar los
datos en Fladoop. Jaql posee una infraestructura flexible para
administrar y analizar datos semiestructurados como XML, archivos
CSV, archivos planos, datos relaciónales, etc.
Lucene
Es un proyecto de Apache bastante popular para realizar búsquedas
sobre textos. Lucene provee librerías para indexación y búsqueda de
texto.
Ha sido principalmente utilizado en la implementación de motores de
búsqueda (aunque hay que considerar que no tiene funciones de
“crawling” ni análisis de documentos HTML ya incorporadas).
Lucene
El concepto a nivel de arquitectura de Lucene es simple, básicamente
los documentos (document) son divididos en campos de texto (fields) y
se genera un índice sobre estos campos de texto.
La indexación es el componente clave de Lucene, lo que le permite
realizar búsquedas rápidamente independientemente del formato del
archivo, ya sean PDFs, documentos HTML, etc.
Oozie
Existen varios procesos que son ejecutados en distintos momentos, los
cuales necesitan ser orquestados para satisfacer las necesidades de
tan complejo análisis de información.
Oozie es un proyecto de código abierto que simplifica los flujos de
trabajo y la coordinación entre cada uno de los procesos.
Oozie
Permite que el usuario pueda definir acciones y las dependencias entre
dichas acciones.
Un flujo de trabajo en Oozie es definido mediante un grafo acíclico
llamado Directed Acyclical Graph (DAG), y es acíclico puesto que no
permite ciclos en el grafo;
es decir, solo hay un punto de entrada y de salida y todas las tareas y
dependencias parten del punto inicial al punto final sin puntos de
retorno.
Pig
Inicialmente desarrollado por Yahoo para permitir a los usuarios de
Hadoop enfocarse más en analizar todos los conjuntos de datos y
dedicar menos tiempo en construir los programas MapReduce.
Tal como su nombre indica, al igual que cualquier cerdo que come
cualquier cosa, el lenguaje PigLatin fue diseñado para manejar
cualquier tipo de dato y Pig es el ambiente de ejecución donde estos
programas son ejecutados, de manera muy similar a la relación entre la
máquina virtual de Java (JVM) y una aplicación Java.
ZooKeeper
ZooKeeper es otro proyecto de código abierto de Apache que provee de
una infraestructura centralizada y de servicios que pueden ser utilizados
por aplicaciones para asegurarse de que los procesos a través de un
cluster sean señalizados o sincronizados. Internamente en ZooKeeper
una aplicación puede crear un archivo que se persiste en memoria en
los servidores ZooKeeper llamado znode.
ZooKeeper
Este archivo znode puede ser actualizado por cualquier nodo en el
cluster, y cualquier nodo puede registrar que sea informado de los
cambios ocurridos en ese znode; es decir, un servidor puede ser
configurado para “vigilar” un znode en particular.
De este modo, las aplicaciones pueden sincronizar sus procesos a
través de un cluster distribuido actualizando su estatus en cada znode,
el cual informará al resto del cluster sobre el estatus correspondiente de
algún nodo en específico.