0% encontró este documento útil (0 votos)
23 vistas49 páginas

Batch Processing PDF

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas49 páginas

Batch Processing PDF

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

[AFO017713] IFCT127PO ARQUITECTURA BIG DATA

[MOD015921] IFCT127PO ARQUITECTURA BIG DATA


[UDI080712] BATCH PROCESSING.

Introducción

Batch processing (Sistema por lotes en español) hace referencia a la ejecución de un programa sin

control por parte del usuario.

Normalmente se usa para realizar tareas que son repetitivas sobre grandes lotes de información.

Es normal que estos programas se ejecuten a través de scripts en los que dentro suele estar

indicado que acciones van a ser ejecutadas por dicho script y, normalmente, los recursos que va a

om
necesitar para llevarlo a cabo.

c
u.
at
al
r tu

Existen varios programas que funcionan usando batch processing, por ejemplo:
vi
la

GIMP (GNU Image Manipulation Program)

Gnuplot
au

EXEC II

[Link]

GNU Octave

Generalmente, casi en todos los casos, un programa podría ser ejecutado en modo batch, siempre

que se pueda especificar qué pasos existen para su ejecución mediante un script.

No se debe confundir el procesamiento por lotes con los archivos que tengan extensión .bat de los

[Link]
1 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

sistemas batch.

Los archivos .bat se ejecutan de manera secuencial y el usuario no puede hacer nada

(Interaccionar) mientras que este se está ejecutando.

Por otro lado tenemos los sistemas por batch que son una forma de hacer el proceso de la

información en lenguaje llano. Estos sistemas son ejecutados de forma secuencial también pero no

porque el programa en sí se lo exija (Como los archvos .bat), sino porque no conocen otra forma de

ejecutarse.

om
Como introducción tenemos varios apartados interesantes que nos serán de ayuda para adentrarnos

en profundidad.

c
u.
Hadoop nace en el momento en que Google necesita urgentemente una solución con la que pueda

continuar procesando datos al ritmo que el mercado le demanda.


at
Pig es una plataforma creada por Yahoo que nos ayuda a desarrollar algoritmos MapReduce.
al

Apache sqoop es una herramienta que fue diseñada para importar información desde bases de
tu

datos estructuradas y sistemas Hadoop en el clúster Hadoop.

Apache Spark es un framework de computación en clúster diseñado para una rápida computación.
r
vi
la
au

[Link]
2 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Objetivos

Dentro de esta unidad vamos a ver varios tipos de herramientas que nos serán de ayuda para

empezar a desarrollarnos dentro del batch processing:

Conocer la definición de la herramienta Hadoop.

Conocer la definición de la herramienta Pig.

Conocer la definición de la herramienta Hive.

om
Conocer la definición de la herramienta Sqoop.

Conocer la definición de la herramienta Flume.

Conocer la definición de la herramienta Spark Core.

c
Conocer la definición de la herramienta Spark 2.0.

u.
Conocer las funciones y usos de las herramientas anteriormente mencionadas
at
dentro de un entorno adaptado a nuestras necesidades.
al
r tu
vi
la
au

[Link]
3 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Mapa Conceptual

[[[Elemento Multimedia]]]

c om
u.
at
al
r tu
vi
la
au

[Link]
4 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Hadoop.

¿Qué es HADOOP?

Podríamos empezar esta nueva unidad comentando que Hadoop nace en el momento en que Google

necesita urgentemente una solución con la que pueda continuar procesando datos al ritmo que el

mercado le demanda ya que Google en sus inicios creció de forma exponencial. Google decide

buscar una solución y esta solución se basa en un sistema de archivos distribuidos. Más tarde se

om
denominará Hadoop y se basa en un gran número de pequeños ordenadores, cada uno de los cuales

se encarga de procesar una parte de la información.

c
Lo novedoso y la excelencia del sistema es que a pesar de que cada uno de ellos funciona de forma

u.
independiente y autónoma, todos actúan en conjunto como si fueran un solo ordenador de

dimensiones increíbles.
at
En 2006, Google publica todos los detalles acerca de su nuevo descubrimiento, compartiendo su

conocimiento y experiencia con todos los usuarios. Esto despierta el interés de la comunidad Open
al

Source que viendo las nuevas oportunidades que surgirán, explotan sus posibilidades desarrollando
tu

una implementación a la que denominan Hadoop.

A partir de entonces son muchas las empresas que lo incorporan a sus plataformas, como ya
r
vi

veremos y que fomentan y apoyan la investigación de la comunidad de Open Source.


la

Conceptos previos
au

Es necesario conocer de forma muy clara algunos conceptos antes de profundizar en Hadoop.

Ley de Moore: Originado en la década de los 60’s, establece que la velocidad del procesador o

el poder de procesamiento total de las computadoras se duplica cada doce meses.

Nodo: PC o equipo físico que posee, como tal, su propio hardware y software.

[Link]
5 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Rack: Es un conjunto de 1 a n nodos que se suelen aunar en estructuras metalizas y están

conectados a una misma red.

c om
Clúster: Conjunto de 1 a n racks unidos entre sí por una misma red y que se comportan como

u.
un único ordenador.
at
al
r tu
vi
la

Hadoop
au

Según la definición del propio proyecto Hadoop:

“The Apache™ Hadoop® project develops open‐source software for reliable, scalable, distributed

computing.”

Apache Hadoop es por lo tanto un framework de software libre que permite escribir y ejecutar

aplicaciones en sistemas distribuidos para procesar grandes cantidades de datos. Está diseñado para

escalar de servidores individuales a miles de máquinas, cada una con el procesamiento y el

almacenamiento local.

[Link]
6 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

En lugar de confiar en el hardware para ofrecer alta disponibilidad, el framework en sí está diseñado

para detectar y controlar los errores en la capa de aplicación, facilitando un servicio de alta

disponibilidad en la capa superior, haciendo transparente al usuario la posible caída de un nodo.

El framework de Hadoop está escrito en Java y es una evolución del subproyecto Nutch que a su vez

fue un subproyecto de Lucene, todos ellos desarrollados por Doug Cutting, que nombró el proyecto

en honor al elefante de juguete de su hijo.

c om
Lucene es un proyecto Java orientado a la búsqueda e indexación de texto. Aunque ha sido utilizado

u.
para la implementación de motores de búsquedas ya que es capaz de procesar millones de
at
documentos, es útil para cualquier aplicación que requiera indexación y búsqueda de textos

completos.
al

Nutch es una extensión de Lucene que permite construir un motor de búsquedas web, usando
tu

Lucene como su núcleo. Es capaz de procesar miles de millones de páginas web sin llegar a tener

un coste exorbitante. Otra diferencia con Lucene, es que Nutch debe correr sobre un clúster
r

distribuido. Para ello, se tuvo que crear una capa que permitiera gestionar el procesamiento
vi

distribuido, la redundancia, el balanceo de carga y recuperación frente a fallos.


la
au

Alrededor de 2004, Google publicó dos papers describiendo Google File System (GFS) y el

[Link]
7 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

framework de MapReduce. Doug Cutting implementó una evolución del framework de Nutch basado

en estas tecnologías y rápidamente superó las capacidades de Nutch pudiendo procesar varios

cientos de miles de páginas web en clusters de docenas de nodos.

Aunque el concepto de programación distribuida está muy extendido, los puntos clave de Hadoop

son por lo tanto:

Accesible: Hadoop se ejecuta en grandes grupos de máquinas en clústeres o en nubes tales

om
como Amazon’s Elastic Compute Cloud (EC2).

Robusto: Debido a que está pensado para funcionar con hardware de equipos básicos, Hadoop

está diseñado para trabajar pese a que se sufran frecuentes averías hardware. Gracias a ello,

c
es capaz de manejar la mayoría de estos fallos.

u.
Escalable: Hadoop permite el escalado horizontal para gestionar volúmenes de datos más

grandes mediante la replicación, añadiendo más nodos al clúster.


at
Simple: Hadoop permite a los usuarios escribir código eficiente en paralelo empleando

conceptos complejos como MapReduce o el sistema distribuido de archivos HDFS diseñado en


al

base al GSF de Google.


tu

Profundizando un poco más, Hadoop es un sistema distribuido usando una arquitectura Master-
r

Slave (maestro-esclavo), usado para almacenar su Hadoop Distributed File System (HDFS) y
vi

algoritmos de MapReduce para hacer cálculos.


la

Hadoop corre sobre Linux. Hay varias formas de utilizar Hadoop. Dependiendo de nuestras

necesidades podemos optar por varios tipos de instalación o modos de funcionamiento:


au

Un único nodo en local (single node), utilizado por ejemplo para hacer pruebas de concepto

corriendo Hadoop en una misma máquina.

Un clúster pseudo-distribuido para simular un clúster de varios nodos pero corriendo en una

misma máquina es decir en la misma máquina virtual Java.

Montar un clúster entre distintas máquinas (multi node) totalmente distribuido que sería el

modo que utilizaríamos para montar un sistema Big Data en producción.

Hadoop requiere un entorno de programación Java. Destacar que los usuarios de Linux o Mac OSX

[Link]
8 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

u otros entornos Unix son capaces de instalar Hadoop y ejecutarlo en una o más maquinas sin más

necesidad de software que Java. El resto de usuarios necesitan una máquina virtual. Por esta razón

es muy útil conocer y manejar los comandos Linux.

Ecosistema Hadoop

Este ecosistema cambia muy rápido con lo que es bueno revisarlo cada cierto periodo de tiempo.

Aquí se muestran los proyectos más comunes.

c om
u.
at
al
r tu
vi
la
au

Monitorización

Como herramientas de monitorización tenemos:

Chukwa ([Link] Es un sistema de captura de datos y framework de análisis

[Link]
9 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

que trabaja con Hadoop para procesar y analizar grandes volúmenes de logs. Incluye herramientas

para mostrar los datos capturados.

La documentación se encuentra en su wiki: [Link]

La arquitectura de Chukwa es la que se muestra en la figura siguiente:

c om
u.
at
al
tu

Apache Ambari ([Link] Es una herramienta web para la monitorización y

gestión de los clúster de Hadoop. Posee dashboards de mapas de calor para visualizar el estado del
r

clúster y también permite la visualización de aplicaciones como MapReduce, Hive, etc…


vi

La documentación y tutoriales en su wiki:


la

[Link]
au

Flume [Link] En inglés se denomina Flume a un canal de agua artificial para

mover troncos (logs). Es un sistema distribuido para agregar y mover grandes cantidades de

archivos de logs de diferentes orígenes, servidores, a un repositorio central, simplificando el proceso

de recolectar estos datos para almacenarlos en Hadoop y poder analizarlos.

[Link]
10 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

om
En el siguiente enlace se puede encontrar un manual de uso:

c
[Link]

u.
La arquitectura e integración de Flume, donde se ve como diferentes agentes recogen ficheros log
at
desde diferentes orígenes, los integran en un repositorio común para después analizarlos con

Hadoop llevándolos primero a su sistema de archivos HDFS, se muestra en la figura siguiente:


al
r tu
vi
la
au

ZooKeeper [Link] Proporciona una infraestructura para gestionar sistemas

distribuidos y mantener la sincronización del clúster. Facilita un conjunto de primitivas simples que

pueden usar las aplicaciones distribuidas para implementar servicios de mayor nivel de

sincronización y configuración. Es fácil de programar y usa un modelo de datos del estilo de árbol de

[Link]
11 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

directorios de los sistemas de archivos.

Procesamiento

MapReduce es un modelo de programación para dar soporte a la computación paralela sobre

grandes colecciones de datos en grupos de computadoras y al commodity computing. El nombre del

framework está inspirado en los nombres de dos importantes métodos, macros o funciones en

programación funcional: Map y Reduce. MapReduce ha sido adoptado mundialmente, ya que existe

una implementación OpenSource denominada Hadoop.

om
Avro [Link] La serialización es el proceso mediante el cual se convierte un objeto

a un formato para que pueda ser procesado y almacenado. Como en Hadoop se procesa una gran

c
cantidad de datos la serialización se usa para poder procesarlos y guardarlos de forma eficiente. La

u.
serialización puede ser en formato de texto plano, JSON o binario. De esta forma se pueden leer

datos y almacenarlos de forma fácil desde diferentes lenguajes de programación.


at
Hive [Link] Facilita la lectura, escritura y gestión de grandes datasets
al

almacenados en Hadoop usando un lenguaje similar a SQL llamado HiveQL. En el siguiente enlace
tu

se puede encontrar un manual de

uso: [Link]
r
vi
la
au

Esta imagen refleja el funcionamiento de Hive que funciona como una capa externa y por encima de

Hadoop y desde donde vamos a poder realizar consultas sobre los ficheros de HDFS usando HiveQL.

[Link]
12 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

HCatalog [Link]

Es un servicio para la gestión de tablas y almacenamiento que proporciona un esquema común que

permite abstraerse de las diferentes estructuras de tablas, de cómo se almacenan y de los datos que

contienen, facilitando las operaciones de lectura y escritura.

c om
u.
at
Mahout [Link] Es un proyecto de aprendizaje automático y minería de datos
al
para la buscar patrones en grandes datasets.
r tu
vi
la
au

Oozie [Link] Es un proyecto orientado a la programación de flujos de trabajo.

Pig [Link] Desarrollado por Yahoo, permite a los usuarios de Hadoop centrarse

más en el análisis de los datos y menos en la creación de programas MapReduce proporcionando un

lenguaje de alto nivel para el análisis y ejecución de procesos en paralelo. La documentación se

encuentra en [Link]

Spark [Link] Es un motor de computación muy potente con un modelo de

programación muy simple que da soporte a múltiples aplicaciones.

[Link]
13 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Sqoop [Link] /: Es una herramienta para la transferencia de grandes volúmenes

de datos entre bases de datos relacionales, Hadoop y viceversa.

c om
u.
at
al

Tez [Link] Es una evolución del sistema MapReduce, que permite ejecutar varias
tu

operaciones Map y/o reduce concatenadas. Estas tareas se pueden modelar en forma de grafo

acíclico.
r
vi
la
au

Lucene [Link] Es un proyecto de Apache bastante popular para realizar

búsquedas sobre textos. Proporciona librerías para la indexación y búsqueda de texto. Ha sido

[Link]
14 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

principalmente utilizado en la implementación de motores de búsqueda.

Bases de datos

Cassandra [Link] Base de datos NoSQL distribuida basada en el modelo

om
clave-valor.

HBase [Link] se trata de la base de datos de Hadoop. Es una base de datos

c
NoSQL distribuida, orientada a columnas para el almacenamiento de grandes volúmenes de datos.

u.
Es el componente necesario cuando se requiere escrituras/lecturas en tiempo real y acceso aleatorio
at
para grandes conjuntos de datos.
al
r tu
vi
la
au

¿Quién usa Hadoop?

Tal y como está publicado en la página de Apache Hadoop

[Link] se muestran a continuación algunas de las empresas que

usan Hadoop.

[Link]
15 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Módulos en Hadoop

om
Hadoop está inspirado en el proyecto de Google File System (Ghemawat, y otros, 2003) y en el

paradigma de programación MapReduce. Hadoop está compuesto de tres piezas fundamentales:

Hadoop Distributed File System (HDFS), Hadoop MapReduce y Hadoop Common en los que

c
entraremos en detalle en los siguientes apartados:

u.
Hadoop Common: Utilidades comunes que dan soporte a otras aplicaciones Hadoop.
at
Hadoop Distributed File System (HDFS): Sistema distribuido de ficheros que proporciona un

alto rendimiento en el acceso a datos.


al

Hadoop MapReduce: Sistema para el procesamiento en paralelo de grandes volúmenes de


tu

datos.
r
vi
la

Comenzar Actividad
au

Relaciona los elementos de la columna Derecha con la columna Izquierda

Apache Hadoop es 1 Un framework de software libre


que permite escribir y ejecutar
aplicaciones en sistemas
El framework de Hadoop está 2 distribuidos para procesar
escrito en Java y es grandes cantidades de datos.

Lucene es un proyecto Java 3 Una evolución del subproyecto


orientado a Nutch que a su vez fue un
subproyecto de Lucene, todos
ellos desarrollados por Doug
Cutting, que nombró el proyecto

[Link]
16 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

en honor al elefante de juguete de


su hijo.

La búsqueda e indexación de
texto.

Podríamos empezar esta nueva unidad comentando que Hadoop nace en el


momento en que Google necesita urgentemente una solución con la que pueda
continuar procesando datos al ritmo que el mercado le demanda ya que Google

om
en sus inicios creció de forma exponencial.

c
u.
at
al
r tu
vi
la
au

[Link]
17 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Pig.

Pig es una plataforma creada por Yahoo (a alto nivel) que nos ayuda a desarrollar algoritmos

MapReduce utilizando una sintaxis similar a SQL llamada Pig latin. Tiene dos modos de

funcionamiento permitiéndonos ejecutar los algoritmos en el cluster HDFS de Hadoop o en nuestra

maquina local. Utilizando un script se codificarán las sentencias que realizan la carga, escaneo,

búsqueda y filtrado de los datos de entrada y sentencias para el formateo y almacenamiento de los

datos de salida.

om
Podremos utilizar un schema para estructurarlos y poder acceder de manera más sencilla.

c
Se puede ampliar Pig Latin usando UDF (Funciones definidas por el usuario).

u.
Estas funciones pueden estar desarrolladas en varios lenguajes de programación (Python, Ruby,

Java, Javascript,...) y luego llamarlas, de forma directa, desde el propio lenguaje.


at
Inicialmente Pig se desarrolló en 2006 por los investigadores de Yahoo Research para poder lanzar
al

un map-reduce sobre un gran volumen de datos.


tu

En 2007, se trasladó a Apache Software Foundation.


r
vi
la
au

"Filosofía" Pig

Para poder comprender mejor el por qué se creó Pig, se definieron una lista de enunciados que

resumen el proyecto.

Estos enunciados son:

"Pigs eat anything": Haciendo referencia al símil de que un cerdo puede comer

[Link]
18 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

cualquier cosa, Pig puede trabajar con cualquier tipo de datos, ya sea no

estructurado, estructurado ó semi-estructurado.

"Pigs live anywhere": En su creación, Pig fue implementado en Hadoop pero esto

no significa que solamente esté orientado a esta plataforma. Su intención es que

Pig sea utilizado como un lenguaje para el procesamiento paralelo.

"Pigs are domestic animals": Al igual que los "animales domésticos", Pig está

pensado para que los propios usuarios puedan controlar y modificar el

funcionamiento (conducta en el caso de los animales domésticos) de los

om
programas. Como indicamos en el apartado anterior, Pig puede crecer y aumentar

su funcionalidad mediante funciones que definan los propios usuarios (UDF). Esto

c
hace que Pig pueda extenderse mediante UDFs para que realice un procesamiento

u.
personalizado.

"Pigs fly": El objetivo de Pig es procesar datos de forma muy rápida. No


at
pretendemos mejorar las características sino el rendimiento para que realmente

Pig pueda "volar".


al
tu

¿Quién está usando Pig actualmente?


r

Por supuesto, al ser el creador de dicha plataforma, Yahoo! fue el primero en utilizarla para sus
vi

procesos de búsqueda en la web así como para incorporarlo en Hadoop.


la

Realmente, más del 50% de los procesos que se ejecutan en Hadoop se basan en scripts escritos en

Pig Latin.
au

A partir del 2009, Pig se empezó a usar para el procesamiento de datos en otras compañias, tales

como:

LinkedIn: Esta plataforma usa Hadoop y Pig en el componente "Gente que podrías conocer"

para recomendar a los usuarios posibles conocidos, empleos o páginas que puedan ser de su

interés.

Twitter: Esta red social usa Pig para procesar logs de datos de los tweets enviados.

AOL y WhitePages: Estas páginas utilizan Pig para, en sus búsquedas de información, filtrar

[Link]
19 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

los registros.

Pig Latin

Pig Latin es un lenguaje de programación que usa flujos de datos de forma paralela. Esto

permite a los programadores definir como deben ser tratados (Lectura, Procesamiento y

Almacenamiento) los datos que provienen de una o más entradas.

om
La sintaxis es muy parecida a SQL pero, al ser un lenguaje orientado a la transformación de datos

también es parecido a los optimizadores de consultas.

Habitualmente utilizando MapReduce en Java, los programas pueden ser de más de 100 líneas de

c
código, mientras que utilizando Pig Latin, los scripts normalmente no suelen pasar de unas 10 líneas

u.
de código. at
al
r tu
vi
la
au

[Link]
20 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

El método de funcionamiento de Pig Latin es el de ejecutar sentencias tomando los datos de entrada

("bag") que hacen referencia a un conjunto de tuplas (filas), procesando dichas sentencias con

dichas tuplas y emitiendo otro "bag" como salida.

Una "tupla" es un conjunto de campos, donde cada uno hace referencia a cualquier tipo de dato. Pig

Latin no utiliza condicionales tales como "if" ni tampoco ciclos tales como "for" ya que este

lenguaje está enfocado en el flujo de datos y no en controlar dicho flujo como otros lenguajes de

om
programación.

Pig Latin usa operadores relacionales para poder realizar varias operaciones sobre los datos que

se analizan.

c
u.
Aunque anteriormente hemos dicho que Pig Latin no utiliza ciclos "for", sí que existe el operador

"FOREACH" que tiene una naturaleza similar ya que su función es la de iterar sobre las tuplas y
at
transformarlas en dichas iteraciones.
al
En la siguiente tabla se puede observar algunos de los operadores relacionales que son utilizados en

Pig Latin:
r tu
vi
la
au

[Link]
21 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

c om
u.
at
al
r tu
vi
la
au

¿Qué se puede resolver con Pig?

Anteriormente comentamos el uso que algunas empresas (LinkedIn, Twitter, AOL,...) le daban a Pig.

Además de estos usos, existen muchos datos que se pueden procesar y aún no se ha hecho y esto

puede permitir realizar modelos de predicción del comportamiento.

Por ejemplo, Pig se podría usar para ver todos los movimientos de un usuario en una página web y

poder dividir en varios tipos a los usuarios. Así, se podría categorizar a dichos tipos de usuarios y

para cada uno mostrar anuncios o artículos que estén más relacionados con sus tipos de búsqueda.

[Link]
22 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Pig permite el análisis de gran volumen de información (Big Data), con Apache Pig se puede

procesar y almacenar dichos datos en una base de datos y posteriormente ejecutar consultas

(queries) sobre ellos. Esto hace que Pig tenga una similitud con una herramienta ETL (Extract

Transform Load).

Pig permite la paralelización utilizando Hadoop haciendo que los scripts sean más simples.

Esto no significa que Pig sea un reemplazo de una ETL ya que no tiene funcionalidades específicas

como sí lo hace una herramienta ETL.

om
Ejemplo de lenguaje Pig Latin para programa de cuenta de caracteres:

c
u.
at
al
r tu
vi

Este ejemplo de un archivo cogerá las palabras de un archivo de texto y nos contará las palabras.
la
au

Comenzar Actividad

Relaciona los elementos de la columna Derecha con la columna Izquierda

Pig Latin usa 1 Operadores relacionales para


poder realizar varias operaciones
sobre los datos que se analizan.
Pig Latin es un lenguaje de 2
programación que usa
Flujos de datos de forma paralela.

nicialmente Pig se desarrolló en 3

[Link]
23 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

2006 por los investigadores de Poder lanzar un map-reduce


Yahoo Research para sobre un gran volumen de datos.
En 2007, se trasladó a Apache
Software Foundation.

Pig es una plataforma creada por Yahoo (a alto nivel) que nos ayuda a desarrollar
algoritmos MapReduce utilizando una sintaxis similar a SQL llamada Pig latin.

c om
u.
at
al
r tu
vi
la
au

[Link]
24 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Hive.

Apache Hive es un framework que fue originalmente creado por Facebook que sirve para trabajar

con el HDFS de Hadoop y nos facilita trabajar con los datos. A través de sentencias SQL podemos

lanzar consultas que serán traducidas a trabajos MapReduce.

c om
u.
at
al

Facebook fue la encargada de desarrollar Hive y actualmente es utilizada por Apache Hive y
tu

desarrollada por empresas tales como Netflix y FINRA (Financial Industry Regulatory Authority).
r

Amazon incluye una derivación Apache Hive en sus servicios Amazon Web Services.
vi

Hive no es una base de datos, aunque tengamos que crearnos un schema, crear una tabla e
la

introducir datos. Por esto se conoce como el componente datawarehouse de Hadoop.


au

Apache Hive permite analizar conjuntos de datos grandes que utilicen almacenamiento bajo HDFS

de Hadoop y en sistemas que sean compatibles tales como Amazon S3.

Tiene un lenguaje basado en SQL que se llama HiveQL y permite leer y convertir consultas en

MapReduce y otras plataformas que pueden ejecutarse bajo YARN.

Para que las consultas sean más rápidas, Hive utiliza índices de bitmaps.

Hive incluye otras características tales como:

Indexación para la mejora de la velocidad en las consultas.

[Link]
25 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Varios tipos de almacenamiento de texto (Ej: ORC, RCFile,...).

Almacenamiento en BD Relacionales.

Operaciones para poder ser ejecutadas en datos comprimidos (Ej: BWT,

DEFLATE,...).

UDF (Funciones definidas por el usuario) para poder tratar textos y otros tipos de

datos y poder adaptarlo a nuestra funcionalidad.

Consultas con estructura parecida a SQL que se convierten, de forma automática,

a MapReduce, Tez ó tareas Spark.

om
Inicialmente, Hive guarda sus metadatos en una base de datos apache Derby pero se puede

c
configurar para que estos metadatos puedan ser almacenados en otros bases de datos relacionales

u.
como pueden ser: Postgres, MySQL, Oracle, o MS SQL.
at
Su principal inconveniente es que necesita procesar la consulta SQL y traducirla a Java para crear el

trabajo MapReduce.
al

El programa presenta el siguiente aspecto:


r tu
vi
la
au

Desde el botón upload podemos subir archivos que utilizaremos como fuentes de datos:

[Link]
26 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Para procesar los datos utilizaremos el editor que tiene integrado:

c om
u.
at
al
r tu
vi
la

Crearemos la base de datos y la tabla que almacenara los datos desde aquí.
au

[Link]
27 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

c om
u.
at
Supongamos que hemos creado una tabla como esta. Los campos de la tabla deben de ser campos
al

que tengamos en nuestro archivo de datos


tu

Ya solo nos queda introducir los datos en la tabla.


r

load data inpath '/user/usuario/[Link]' overwrite into table presupuestos;


vi

Ahora si realizamos una consulta:


la

select descripcion_centro, descripcion_seccion, descripcion_capitulo, descripcion_economico,


au

importe

from presupuestos

order by importe

[Link]
28 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Podemos visualizar los datos como más nos convenga y necesitemos.

Conclusión

Hive nos proporciona una herramienta para traducir queries del lenguaje tradicional SQL, que es ya

conocido por la industria, a los nuevos frameworks NoSQL en el ecosistema Hadoop. Hive es una

herramienta fácil y rápida de programar pero conlleva un sobrecoste en la ejecución en comparación

de la programación directa en frameworks NoSQL.

om
Si se utiliza un volumen de información muy extenso en un clúster de Hadoop y no se tienen

nociones o fundamentos para programar MapReduce, Hive es perfecta para poder extraer la

c
información que se desee.

u.
Por ejemplo:
at
Si tenemos muchos archivos .log en un servidor y queremos extraer información en ellos sería
al
difícil poder extraer información de forma fácil y rápida. Sin embargo, utilizando Hive, sería sencillo

crear una tabla extrayendo los datos de los ficheros y filtrando la información por ejemplo por líneas
tu

que contengan fallos o errores.


r
vi

A través de sentencias SQL podemos lanzar consultas que serán traducidas a


trabajos:
la

Apache Hive.
au

MapReduce.

[Link]
29 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Sqoop.

Sqoop es un programa que se ejecuta bajo línea de comandos y sirve para transferir datos entre

Hadoop y BD relacionales.

El nombre de esta aplicación surge de unir las palabras sql y hadoop. Pasó a ser un proyecto Apache

de nivel superior en 2012. Tiene una amplia documentación tanto para desarrolladores como para

usuarios.

om
Como ejemplo, Microsoft usa un conector que está basado en Sqoop para ayudar al traspaso de

información entre SQL Server y Hadoop.

c
La API de Sqoop permite conectar con otras BD mediante el desarrollo de conectores y así poder

u.
adaptar y usar los lenguajes de consultas de otro proveedor de BD específico.
at
¿Cómo funciona Sqoop?
al
Sqoop trabaja como una capa intermedia entre las BD relacionales y Haddop tal y como se muestra

en la siguiente imagen.
r tu
vi
la
au

Apache Sqoop es una herramienta que fue diseñada para importar información desde bases de

datos estructuradas y sistemas Hadoop en el clúster Hadoop. Podemos utilizar Sqoop también para

extraer datos Hadoop y exportarlos a bases de datos relacionales.

[Link]
30 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

om
Supongamos que tenemos una tabla empleados en MySQL:

c
u.
at
al
tu

Para importar esta tabla usaremos el siguiente comando


r
vi

sqoop import --connect jdbc:mysql://localhost/employees --username usuario --table employees


la

Una vez ejecutado el comando el trabajo de mapa de datos se ejecutara:


au

Una vez ejecutado tendremos nuestra tabla importada en el HDFS de hadoop listo para ser usado.

[Link]
31 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Conclusión

Como hemos podido ver, Sqoop es una herramienta muy útil para trasladar una base de datos ya

existente al entorno Hadoop y viceversa.

Nos permite, mediante los comandos pertinentes, importar datos de nuestra BD relacional,

analizarlos y gestionarlos mediante otras herramientas como pueden ser Pig o Hive sobre Hadoop y

devolver el resultado de nuevo a nuestras BD relacionales.

c om
u.
at
al
r tu
vi
la
au

[Link]
32 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Flume.

Flume es un servicio distribuido y fiable para recoger, agregar y mover grandes cantidades de

datos de log. Tiene una arquitectura simple y flexible de flujo de datos. Es robusto y tolerante a

fallos con mecanismo de confiabilidad ajustables y muchos mecanismos de conmutación por error y

recuperación. Utiliza un modelo de datos extensible que permite la aplicación analítica en línea. Esta

principalmente diseñado para copiar datos de varios servidores a HDFS.

c om
u.
at
Para usar Flume una vez lo tengamos instalado configuraremos de dónde obtendremos los datos:
al
r tu
vi

Vamos a transferir los datos de twitter. Una vez listado los componentes, tendremos que

describirlos:
la
au

Los access token y los consumerkey las obtendremos de Enlace a app .

Ahora deberemos describir los “sink” que será donde almacenemos los datos:

[Link]
33 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Así configuraremos los sink para HDFS.

Deberemos describir el canal por donde se transferirá los datos entre la fuente de datos y los

“sink”:

om
Una vez configurado como hemos visto necesitaremos un accessToken que podemos crearlo desde

[Link] una vez creada nuestra aplicación rellenaremos los datos que nos faltaban y

podremos empezar a recoger datos.

c
u.
El archivo final [Link] sería algo así:
at
al
r tu
vi
la
au

Ejecutaremos Flume:

Y empezara a mostrarnos los tweets recogidos:

[Link]
34 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

c om
u.
at
Estos tweets estarán en nuestro HDFS de hadoop
al
tu

Conceptos (1/2)

Flume maneja los siguientes conceptos:


r
vi
la

Evento

Payload de bytes que Flume representa como unidad de datos y puede ser transportado
au

desde el origen hacia un punto de destino final.

Flujo

Movimiento entre punto de origen y destino final de los eventos.

Cliente

Implementación que trabaja en el origen de los eventos y realiza la entrega a un agente

Flume. Ej: Log4J appender.

[Link]
35 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Agente

Proceso que tiene los componentes Flume como Fuentes (Source), Canales (Channels) y

Sumideros (Sink). Es capaz de obtener, guardar y reenviar eventos al siguiente destino.

Conceptos (2/2)

om
Fuente (Source)

Implementación que es capaz de consumir eventos que se le entregan a través de un

c
mecanismo. La fuente, al recibir un evento, lo entrega a 1 o más canales.

u.
Canal (Channel)
at
Es donde, temporalmente, un evento es almacenado. Estos eventos son entregados a los

canales por las fuentes que operan con el agente. Los eventos que están en los canales
al

permanecen hasta que son eliminados por un sumidero (Sink).


tu

Sumidero (Sink)
r

Implementación que es capaz de eliminar eventos de un canal y enviarlos al siguiente agente


vi

del flujo o hasta el destino final. Si el sumidero envía el evento hasta el destino final se
la

conoce como sumidero terminal.


au

La relación de estos conceptos puede verse reflejada en la siguiente imagen:

[Link]
36 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

c om
u.
at
al
r tu
vi
la
au

[Link]
37 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Spark Core.

Apache Spark es un framework de computación en cluster diseñado para una rápida computación.

Fue creada sobre Hadoop MapReduce y amplia el modelo MapReduce para usar de manera más

eficiente más tipos de cálculos que incluyen consultas interactivas y procesamiento de flujo.

c om
u.
at
Fue desarrollada por la Universidad de California. Posteriormente, el código base fue donado a la

Apache Software Foundation que, desde entonces, se encarga de mantener dicho código. Permite
al
una interfaz para programación de clusters con paralelismo de datos y tolerancia a fallos.
tu

La base de la arquitectura para Apache Spark está en el Resilient Distributed DataSet (RDD) que

es un multiset de ítems de datos, en modo solo lectura, distribuidos en un clúster de máquinas con
r

un entorno tolerante a fallos.


vi

Como veremos en el apartado del tema siguiente (Spark 2.0), actualmente se recomienda para el
la

desarrollo la API DataSet, aunque la API RDD no está descatalogada.


au

Los RDDs de Spark son un conjunto de trabajo (Working Set) para los programas distribuidos que

permiten la restricción de la memoria compartida distribuida.

Apache Spark necesita un cluster manager y un sistema de almacenamiento distribuido.

Para gestionar el clúster, existen las siguientes opciones:

Spark Standalone (Nativo).

Apache Mesos.

Hadoop YARN.

[Link]
38 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Por otro lado, para el almacenamiento distribuido, existen varias interfaces disponibles:

Hadoop Distributed File System (HDFS).

Cassandra.

Amazon S3.

MapR File System (MapR-FS).

om
OpenStack Swift.

Kudu.

c
u.
Ventajas Spark at
Las mayores ventajas de Spark serían:
al
Procesamiento de los resultados parciales en memoria.

Código libre (Open Source).


tu

Shell interactiva.

Tolerancia a fallos.
r

Extendible para streaming mediante módulos, Machine Learning.


vi

Multi-lenguaje.
la

Mucho más rápido que Hadoop MapReduce (Hasta 100 veces).


au

[Link]
39 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

c om
u.
at
Componentes Spark
al

Spark está basado en un núcleo o componente principal (Core) y sobre este Core hay varios

componentes que extienden su funcionalidad tales como:


r tu

Spark SQL: Los datos están estructurados y podemos acceder a ellos e integrar Spark con
vi

Hive, JDBC, ODBC y herramientas de BI.

Spark Streaming: Soporta el procesamiento de un sistema de empaquetamiento de


la

pequeños lotes casi a tiempo real.


au

Spark GraphX: API para la computación de grafos de forma paralela.

Spark MLlib: Biblioteca donde están alojados algoritmos clásicos de machine learning

que están listos para ser ejecutados sobre Spark.

[Link]
40 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Abstracción RDD

Un RDD (Resilient Distributed Dataset) es una abstracción de Spark que hace referencia a una

colección de elementos en memoria a través del cluster en particiones. Se pueden llevar a cabo

operaciones en paralelo sobre un RDD.

Cada partición hace referencia a un subconjunto de los datos y se asigna a cada nodo para que,

paralelamente, pueda utilizar estos datos y operar con ellos.

c om
u.
at
al
tu

Vamos a crear un contador de palabras con Spark.

Supongamos que tenemos un archivo de texto con un texto escrito en el.


r
vi

Abriremos la consola de spark utilizando el comando spark-shell:


la
au

Primero tenemos que leer el archivo de entrada. El siguiente comando es utilizado para leer un

archivo de una localización dada.

[Link]
41 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Nuestro objetivo es contar las palabras de un archivo. Crearemos un mapa plano separando cada

linea en palabras flatMap(line ⇒ [Link](“”) después relleremos cada palabra como una clave

con el valor 1 usando la función map. Finalmente reduciremos esas claves añadiendo valores de

claves similares. El siguiente comando es usado para ejecutar la lógica de cuenta de palabras:

scala> val counts = [Link](line => [Link](" ")).map(word => (word,

1)).reduceByKey(_+_);

Después de ejecutar el comando no tendremos ninguna salida ya que esto no es una acción sino

om
una transformación.

Ahora aplicaremos la acción para almacenar la transformación en un directorio llamado output:

c
u.
scala> [Link]("output”)
at
Para ver la salida nos iremos a ese directorio y veremos que nos ha creado 3 archivos.

Si realizamos un cat de algún archivo veremos la cuenta de palabras:


al
r tu
vi
la
au

Conclusion

Spark, desde sus inicios, fue diseñado y desarrollado para poner solución a muchos problemas que

Hadoop representaba. Es rápido y eficaz.

Cada vez es más utilizado y el número de contribuidores también crece.

Existen bastantes proyectos reales en los que se ha utilizado y aplicado Spark con éxito y se ha

manifestado que ofrece una gran ventaja competitiva. Se ha convertido en la gran "novedad" en el

universo del Big Data.

[Link]
42 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

c om
u.
Comenzar Actividad
at
Relaciona los elementos de la columna Derecha con la columna Izquierda
al
La base de la arquitectura para 1 El Resilient Distributed DataSet
Apache Spark está en (RDD).
tu

Los RDDs de Spark son un 2 Los programas distribuidos que


conjunto de trabajo (Working permiten la restricción de la
r

Set) para memoria compartida distribuida.


vi

Spark, desde sus inicios, fue Muchos problemas que Hadoop


la

3
diseñado y desarrollado para representaba. Es rápido y eficaz.
poner solución a
au

Apache Spark es un framework de computación en cluster diseñado para una


rápida computación. Fue creada sobre Hadoop MapReduce y amplia el modelo
MapReduce para usar de manera más eficiente más tipos de cálculos que
incluyen consultas interactivas y procesamiento de flujo.

[Link]
43 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Spark 2.0.

Apache Spark 2.0 trajo varios cambios a Apache Spark. La mayor actualización fue la usabilidad de

la API, soporte para SQL 2003, mejora de rendimientos y streaming estructurado. Esta versión

incluyo unos 2500 parches de 300 contribuidores.

c om
u.
at
Las principales novedades de Apache Spark 2.0 son:
al
Unificaron los dataframe y los dataset.

Una nueva configuración api para SparkSession.


tu

Más simple.

Añadieron un módulo para usar datos CSV.


r
vi

Mejoraron la administración de memoria en los procesos.


la

Estos cambios solo modificaron el funcionamiento interno del programa y dieron soporte a más
au

tipos de datos, a la hora de trabajar con el programa se trabaja de la misma forma.

Mejora de la velocidad

Una de las ventajas esenciales de Apache Spark 2.0 frente a sus versiones anteriores reside en la

velocidad, ya que, en esta nueva versión se utiliza una memoria caché integrada y se ha avanzado

en la generación de código en tiempo de ejecución.

La estimación de mejora de la velocidad de Apache Spark 2.0 frente a Apache Spark 1.0 y sus

versiones sucesivas es de entre 5 y 10 veces mayor.

[Link]
44 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Las APIs se unifican en una única API

La comunidad de desarrolladores reclamaban a los administradores que dieran un salto y

permitieran, además de procesar los datos en tiempo real, que se pudiera combinar este

procesamiento con otro tipo de análisis de información.

En esta versión 2.0 de Spark, escuchando a los desarrolladores, está disponible una API que permite

a los programadores el desarrollo de aplicaciones que mezclen componentes en tiempo real,

interactivos y por lotes.

om
Para poder trabajar con esta API de Spark 2.0 es necesario que se configure un almacén de datos

con funciones ETL.

c
Gracias a ellos, se podrá analizar los sitios web mediante consultas interactivas de una sesión

u.
determinada.
at
En esta versión, quedan unificadas en una única biblioteca las APIs DataFrame y Datasets.
al

Spark como compilador


tu

Spark 2.0 es 10 veces más rápido que Spark 1.6, en gran parte porque los desarrolladores han hecho

una limpieza bastante grande de tareas que son prescindibles.


r
vi

Según los análisis realizados, se estima que la mayoría de los ciclos de un motor de datos se suele

gastar en trabajos que no sirven para nada. Optimizar estos ciclos de CPU es un paso muy
la

importante para la mejora de la velocidad.


au

Spark 2.0 está basado en la segunda generación del motor de datos Tungsteno, que se acerca

mucho a un compilador. Aprovecha los registros para la escritura de datos de forma intermedia y

eliminan llamar a funciones virtuales.

_______________ es un framework de computación en cluster diseñado para una


rápida computación. Fue creada sobre Hadoop MapReduce y amplia el modelo
MapReduce para usar de manera más eficiente más tipos de cálculos que
incluyen consultas interactivas y procesamiento de flujo.

Flume

[Link]
45 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Apache Spark

Apache Spark 2.0

c om
u.
at
al
r tu
vi
la
au

[Link]
46 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Recuerda

[[[Elemento Multimedia]]]

c om
u.
at
al
r tu
vi
la
au

[Link]
47 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Autoevaluación

Apache Hadoop…

Apache Hadoop es un framework de software libre que permite escribir y ejecutar


aplicaciones en sistemas distribuidos para procesar grandes cantidades de datos.

om
Apache Hadoop es un framework de pago que permite escribir y ejecutar aplicaciones
en sistemas distribuidos para procesar grandes cantidades de datos.

c
Apache Hadoop es una aplicación de software libre que permite escribir y ejecutar

u.
aplicaciones en sistemas distribuidos para procesar grandes cantidades de datos.
at
Lucene…
al

Es un proyecto Java orientado a la búsqueda e indexación de texto.


tu

Es un proyecto Python orientado a la búsqueda e indexación de texto.


r
vi

Es un proyecto Java orientado a la creación de datos.


la
au

Nutch…

Es una aplicación que permite mejorar nuestras búsquedas.

Es una extensión de Lucene que permite buscar e indexar texto.

Es una extensión de Lucene que permite construir un motor de búsquedas web,


usando Lucene como su núcleo.

[Link]
48 / 49
[AFO017713] IFCT127PO ARQUITECTURA BIG DATA
[MOD015921] IFCT127PO ARQUITECTURA BIG DATA
[UDI080712] BATCH PROCESSING.

Indica si la siguiente afirmación es verdadera o falsa: “Hadoop se ejecuta en


grandes grupos de máquinas en clústeres o en nubes tales como Amazon’s
Elastic Compute Cloud (EC2)”.

Verdadero.

Falso.

om
Indica si la siguiente afirmación es verdadera o falsa: “Hadoop está inspirado en
el proyecto de Lucene”.

c
u.
Verdadero. at
Falso.
al
r tu
vi
la
au

[Link]
49 / 49

También podría gustarte