estudio sobre spark, storm, kafka y hive
Post on 16-Aug-2015
164 Views
Preview:
TRANSCRIPT
ESTUDIO DE SPARK, STORM, PIG, KAFKA y HIVE
1
SPARK Estudio de Spark
1
2
QUÉ ES SPARK?
Qué es?Es un Cluster de computación similar a Hadoop (es complementario a él gracias a Mesos), fue diseñado para operaciones en paralelo con grandes datasets distribuidos, normalmente los procesa en memoria, , así optimiza las cargas de trabajo iterativas permitiendo además hacer consultas interactivas.
Es 100 veces más rápido que Map/Reduce de Hadoop en memoria y 10 veces más rápido en disco.
Cómo funciona?◦ Funciona con RDDs, que es una
colección de objetos (Read-Only) distribuidos a lo largo de nodos, estos son resilentes.
◦ Las aplicaciones en Spark son “drivers”, estos objetos se encargan de las operaciones realizadas en los nodos (en modo standalone o paralelo).Un driver puede llevar a cabo dos tipos de operaciones:
▫ 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
5
SparkSQLPermite realizar consultas SQL sobre datasets distribuidos, estos datasets pueden tener diversos orígenes, es compatible con HIVE, permitiendo hacer uso de sus resultados con consultas sencillas.Utiliza JDBC y ODBC.
Spark StreamingEs una extensión del core de Spark, posibilita el procesamiento de flujos de datos en tiempo real, esos datos pueden ser inyectados desde diferentes fuentes y pueden ser procesados usando complejos algoritmos escritos en alto nivel.Este sistema recibe los inputs en tiempo real y divide los datos en “batches”, estos son procesados por Spark, el cual genera el resultado de los “batches” procesados, además provee de un sistema de abstracción de alto nivel llamado DStream. Estos pueden ser creados a partir de otros DStream o desde las fuentes que soporta Spark Streaming.
MLibEs 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.
GraphXEs un motor que unifica ETL, análisis de exploración y computación gráfica.Es extremadamente rápido y tiene una API súper flexible, además viene acompañado de una gran variedad de algoritmos gráficos.
6
STORM Estudio de Storm
QUÉ ES STORM?
Qué es?Es un sistema computacional distribuido en tiempo real (Trident), se utiliza para:
◦ Analíticas en tiempo real.
◦ Machine learning en tiempo real.
◦ Ejecución de RPCs distribuidos.
◦ ETLs.
◦ , etc.
Su nombre es muy apropiado, es muy rápido, procesa casi un millón de tuplas por segundo y por nodo, además funciona como un cluster de Hadoop.
Cómo funciona?Storm consume flujos de datos y los procesa de maneras complejas de forma arbitraria.Posee 2 tipos de nodos, el master y el worker.
◦ El master ejecuta un demonio llamado “Nimbus”, este es responsable de distribuir los datos en el cluster, asignar tareas a las máquinas y monitorizar.
◦ Cada worker ejecuta un demonio llamado “Supervisor”, este escucha si tiene trabajos asignados e inicia o para procesos en base a lo que le dicte “Nimbus”.
7
ARQUITECTURA Y COMPONENTES
Arquitectura ComponentesLa 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
9
STORM VS SPARKSTREAMING
COMPAREMOS
10
Conceptos
STORM SPARK
Fuentes de Stream Spouts Receivers
Primitivas de Stream Tupla DStream
Computación de Stream Bolts Transformaciones
COMPAREMOS
11
Diferencias
STORM SPARK
Distribución semántica Al menos una vezExactamente una vez con Trident
Exactamente una vezExcepto en algunos escenarios de
error
Administración de estado
Sin estadoHazte el tuyo o utiliza Trident
Con estadosEscribe los estados en
almacenamiento
LatenciaPor debajo de
segundosSegundos
Depende del tamaño del batch
Lenguajes soportados Cualquiera Scala, Java, Python
COMPAREMOS
12
Velocidad de incidencias en Storm
La comunidad es importante
Velocidad de incidencias en Spark
En los últimos 60 días, Storm ha tenido 34 contribuidores únicos
En los últimos 60 días, Spark ha tenido 140 contribuidores únicos
KAFKA Mensajes
13
CaracterísticasSistema 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 latenciaGarantiza la tolerancia a fallos si aparecen fallos en algunos nodos
KAFKA
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
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
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.
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
HiveData Warehouse
18
HIVE
Qué es?◦ Proporciona un conjunto de
operaciones sobre datos.◦ Funciona sobre Hadoop.◦ Provee un dialecto de SQL llamado
HQL (Hive Query Language) cercano al de MySQL.
◦ En las primeras versiones no 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
Cómo funciona?◦ Wrapper “SQL” sobre datos
almacenados en Hadoop.◦ Mediante un “driver” las consultas en
HQL se convierten en operaciones nativas de Hadoop.
◦ Permite implementar procesos ETL sobre los datos.
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
21
LINKS
http://www.ibm.com/developerworks/library/os-spark/#togglehttp://www.slideshare.net/EvanChan2/cassandra2013-spark-talk-finalhttps://spark.apache.org/docs/latest/streaming-programming-guide.htmlhttp://www.eecs.berkeley.edu/Pubs/TechRpts/2012/EECS-2012-214.pdfhttp://www.cs.berkeley.edu/~matei/papers/2010/hotcloud_spark.pdfhttps://spark.apache.org/docs/latest/mllib-decision-tree.htmlhttp://ampcamp.berkeley.edu/big-data-mini-course/graph-analytics-with-graphx.htmlhttps://amplab.github.io/graphx/https://storm.apache.orghttp://es.slideshare.net/ptgoetz/apache-storm-vs-spark-streaminghttp://www.quora.com/What-is-the-criteria-to-chose-Pig-Hive-Hbase-Storm-Solr-Spark-to-analyze-your-data-in-Hadoophttp://www.slideshare.net/EvanChan2/cassandra2013-spark-talk-finalhttp://www.zdatainc.com/2014/09/apache-storm-apache-spark/http://java.dzone.com/articles/streaming-big-data-storm-sparkhttps://storm.apache.org/documentation/Trident-tutorial.htmlhttp://www.larsgeorge.com/2009/10/hive-vs-pig.htmlhttps://cwiki.apache.org/confluence/display/Hive/GettingStartedhttps://cwiki.apache.org/confluence/display/Hive/Tutorialhttp://es.slideshare.net/nzhang/hive-training-motivations-and-real-world-use-cases
top related