Está en la página 1de 21

ESTUDIO DE

SPARK, STORM,
PIG, KAFKA y
HIVE 1
1 SPARK
Estudio de Spark

2
QUÉ ES SPARK?

Qué es? Cómo funciona?


Es un Cluster de computación similar a ◦ Funciona con RDDs, que es una
Hadoop (es complementario a él gracias a colección de objetos (Read-Only)
Mesos), fue diseñado para operaciones en distribuidos a lo largo de nodos, estos
paralelo con grandes datasets distribuidos, son resilentes.
normalmente los procesa en memoria, , así ◦ Las aplicaciones en Spark son
optimiza las cargas de trabajo iterativas “drivers”, estos objetos se encargan
permitiendo además hacer consultas de las operaciones realizadas en los
interactivas. nodos (en modo standalone o
paralelo).
Un driver puede llevar a cabo dos
Es 100 veces más rápido que Map/Reduce de tipos de operaciones:
Hadoop en memoria y 10 veces más rápido
en disco. ▫ Acción: Una acción ejecuta una
computación en un dataset y
devuelve un valor al driver.
▫ Transformación: Una
transformación crea un nuevo
dataset desde un dataset
existente.

3
ARQUITECTURA Y CONECTORES

Arquitectura Qué es Mesos?


Mesos (cómo cluster manager) provee de
una plataforma para recursos compartidos y
aislamiento de aplicaciones (sandboxing). Sus
características principales son:
◦ Escalabilidad hasta 10,000 nodos.
◦ Soporte para contenedores Docker.
◦ Aislamiento nativo entre tareas.
◦ Programación multi-recurso.
◦ Programación de aplicaciones en
paralelo en múltiples lenguajes.
◦ Web para visualizar el estado del
cluster.

4
COMPONENTES

SparkSQL Spark Streaming


Permite realizar consultas SQL sobre Es una extensión del core de Spark, posibilita
datasets distribuidos, estos datasets pueden el procesamiento de flujos de datos en tiempo
tener diversos orígenes, es compatible con real, esos datos pueden ser inyectados desde
HIVE, permitiendo hacer uso de sus diferentes fuentes y pueden ser procesados
resultados con consultas sencillas. usando complejos algoritmos escritos en alto
Utiliza JDBC y ODBC. nivel.
Este sistema recibe los inputs en tiempo real
y divide los datos en “batches”, estos son
procesados por Spark, el cual genera el
GraphX resultado de los “batches” procesados,
Es un motor que unifica ETL, análisis de además provee de un sistema de abstracción
exploración y computación gráfica. de alto nivel llamado DStream. Estos pueden
Es extremadamente rápido y tiene una API ser creados a partir de otros DStream o
súper flexible, además viene acompañado de desde las fuentes que soporta Spark
una gran variedad de algoritmos gráficos. Streaming.

MLib
Es un motor de desición, utiliza la API de
Spark y interopera con NumPy haciendo fácil
la integración de estos procesos en los
workflows de Hadoop.

5
STORM
Estudio de Storm

6
QUÉ ES STORM?

Qué es? Cómo funciona?


Es un sistema computacional distribuido en Storm consume flujos de datos y los procesa
tiempo real (Trident), se utiliza para: de maneras complejas de forma arbitraria.
Posee 2 tipos de nodos, el master y el
◦ Analíticas en tiempo real.
worker.
◦ Machine learning en tiempo real.
◦ El master ejecuta un demonio llamado
◦ Ejecución de RPCs distribuidos. “Nimbus”, este es responsable de
◦ ETLs. distribuir los datos en el cluster,
asignar tareas a las máquinas y
◦ , etc. monitorizar.
Su nombre es muy apropiado, es muy rápido, ◦ Cada worker ejecuta un demonio
procesa casi un millón de tuplas por segundo llamado “Supervisor”, este escucha si
y por nodo, además funciona como un cluster tiene trabajos asignados e inicia o para
de Hadoop. procesos en base a lo que le dicte
“Nimbus”.

7
ARQUITECTURA Y COMPONENTES

Arquitectura Componentes
La coordinación entre los nodos de Storm la
lleva a cabo ZooKeeper.
Storm se posee 3 componentes básicos:
◦ Topologies: Se utilizan para realizar
tareas de computación en tiempo real,
son similares a las tareas
Map/Reduce, pero al contrario que
estas, las topologías están
continuamente procesando mensajes.
◦ Streams: Es la abstracción del core de
Storm. Storm provee de primitivas
para la transformación de streams de
forma distribuida, las más básicas son:
▫ Spouts: Es una fuente de
streams.
▫ Bolts: Procesa streams
entrantes y posibilita la emisión
del resultado como un nuevo
stream.
◦ Data model: Storm utiliza tuplas como
modelo de datos.
8
STORM VS SPARK
STREAMING

9
COMPAREMOS

Conceptos

STORM SPARK

Fuentes de Stream Spouts Receivers

Primitivas de Stream Tupla DStream

Computación de Stream Bolts Transformaciones

10
COMPAREMOS

Diferencias

STORM SPARK

Distribución semántica Al menos una vez Exactamente una vez


Exactamente una vez con Trident Excepto en algunos escenarios de error

Administración de estado Sin estado Con estados


Hazte el tuyo o utiliza Trident Escribe los estados en almacenamiento

Latencia Por debajo de segundos Segundos


Depende del tamaño del batch

Lenguajes soportados Cualquiera Scala, Java, Python

11
COMPAREMOS
La comunidad es importante

Velocidad de incidencias en Velocidad de incidencias en


Storm Spark

En los últimos 60 días, Storm ha tenido En los últimos 60 días, Spark ha tenido
34 contribuidores únicos 140 contribuidores únicos

12
KAFKA
Mensajes

13
KAFKA

Características
Sistema de mensajería distribuido.
Soporta gran volumen de eventos. Eficiente en procesamiento de datos en tiempo real.
El diseño persigue crear a partir de los eventos originales, nuevos eventos derivados.
Permite la entrega de mensajes desde sistemas tradicionales con baja latencia
Garantiza la tolerancia a fallos si aparecen fallos en algunos nodos

Conceptos
◦ Topics: son categoría para los mensajes
◦ Producers: procesos que publican
mensajes
◦ Consumers: procesos que se suscriben a
topics y reciben/procesan los mensajes
◦ Brokers: cada uno de los nodos que
componen el grupo

14
KAFKA

Organización de los topics:


◦ Las Partitions son estructuras ordenadas e
inmutables a las que se “encolan” mensajes.
Tienen un id secuencial llamado offset
◦ Todos los mensajes se guardan durante un
periodo configurable de tiempo
◦ Las Partitions permiten la escalabilidad y
redundancia.
◦ Esta estructura permite la implementación de
tanto de modelos basados en queues como
Publish-Subscribe.

15
KAFKA

Producers
◦ Publican mensajes y es responsable de
elegir a que topic enviar que mensaje.
◦ La política puede ser todo lo compleja que
se requiera.
◦ Cada producer envía mensajes a uno o
más topics.

Consumer
◦ Cada consumer tiene una etiqueta que
identifica al grupo al que pertenece
◦ Cada mensaje que se envía a un topic se
entrega a una instancia dentro de cada
grupo de consumers suscritos.
◦ Cada consumer pueden correr en
diferentes procesos o máquinas

16
KAFKA

Casos de uso
◦ Message Broker (ActiveMQ or RabbitMQ)
◦ Monitorización y tracking de sitios web
◦ Sistemas de monitorización de métricas
◦ Agregacion de logs. La baja latencia de Kafka lo pone por encima de otros sistemas como
Scribe o Flume
◦ Procesamiento de texto. Los frameworks Storm y Samza usan esta capacidad de Kafka.
◦ Aplicaciones que se abastecen con eventos.

17
Hive
Data Warehouse

18
HIVE

Qué es? Cómo funciona?


◦ Proporciona un conjunto de ◦ Wrapper “SQL” sobre datos almacenados en
operaciones sobre datos. Hadoop.
◦ Funciona sobre Hadoop. ◦ Mediante un “driver” las consultas en HQL se
◦ Provee un dialecto de SQL llamado convierten en operaciones nativas de
HQL (Hive Query Language) cercano Hadoop.
al de MySQL. ◦ Permite implementar procesos ETL sobre los
◦ En las primeras versiones no datos.
soportaba transacciones ni
operaciones sobre rows.
◦ Adecuado para tratamiento de datos
en lotes.
◦ Permite añadir nuevas operaciones
Map/Reduce a aplicar a los datos.

19
HIVE

PIG VS HIVE
◦ Ambos añaden una capa de lógica a Hadoop usando pseudo -
SQL
◦ HIVE añade tratamiento de volúmenes mayores de datos

Rendimiento

20
LINKS

http://www.ibm.com/developerworks/library/os-spark/#toggle
http://www.slideshare.net/EvanChan2/cassandra2013-spark-talk-final
https://spark.apache.org/docs/latest/streaming-programming-guide.html
http://www.eecs.berkeley.edu/Pubs/TechRpts/2012/EECS-2012-214.pdf
http://www.cs.berkeley.edu/~matei/papers/2010/hotcloud_spark.pdf
https://spark.apache.org/docs/latest/mllib-decision-tree.html
http://ampcamp.berkeley.edu/big-data-mini-course/graph-analytics-with-graphx.html
https://amplab.github.io/graphx/
https://storm.apache.org
http://es.slideshare.net/ptgoetz/apache-storm-vs-spark-streaming
http://www.quora.com/What-is-the-criteria-to-chose-Pig-Hive-Hbase-Storm-Solr-Spark-to-analyze-
your-data-in-Hadoop
http://www.slideshare.net/EvanChan2/cassandra2013-spark-talk-final
http://www.zdatainc.com/2014/09/apache-storm-apache-spark/
http://java.dzone.com/articles/streaming-big-data-storm-spark
https://storm.apache.org/documentation/Trident-tutorial.html
http://www.larsgeorge.com/2009/10/hive-vs-pig.html
https://cwiki.apache.org/confluence/display/Hive/GettingStarted
https://cwiki.apache.org/confluence/display/Hive/Tutorial
http://es.slideshare.net/nzhang/hive-training-motivations-and-real-world-use-cases

21