Spark web meetup

42
Como optimizar y monitorizar trabajos de Spark con la Spark Web Marzo 2017 Spark meetup

Transcript of Spark web meetup

Page 1: Spark web meetup

Como optimizar y monitorizar trabajos de Spark con la Spark Web

Marzo 2017

Spark meetup

Page 2: Spark web meetup

Presentación

Presentación

JORGE LÓPEZ-MALLA@jorgelopezmalla

Después de unos años trabajando en proyectos con tecnologías

tradicionales empecé a trabajar con Big en I+D y desde entonces me

enamoré de este mundo.Tras trabajar en diversos proyectos

usando Spark como tecnologia base estoy a cargo de las modifcaciones de

Spark para la plataforma Stratio

SKILLS

Page 3: Spark web meetup

La empresa

Presentación

Stratio acompaña a las empresas en su viaje hacia la Transformación Digital. Mediante el trabajo duro y la creatividad, nuestra meta es reinventar a las empresa alrededor de sus datos para que así estas puedan competir en este nuevo mundo digital.

Nuestra solución es un producto de transformación que utiliza tecnologías Big Data de tercera generación para ejecutar la forma más completa de Transformación Digital, garantizando escalabilidad, flexibilidad máxima y adaptación a nuevos mercados.

Si tenéis alguna pregunta o quereis a una demostración en vivo de nuestro producto, contactar con: [email protected]

Page 4: Spark web meetup

¿Cómo funciona Spark?1

Page 5: Spark web meetup

Lanzamiento de un trabajo de Spark

¿Cóm funciona Spark?

Driver

HDFS

scala> sc.textFile(“tweets.txt”) .flatMap(_.split(“ ”)) .filter(_.startsWith(”#”) .map(tweet => (tweet,1)) .reduceByKey(_+_).collect

Page 6: Spark web meetup

Terminología

¿Cóm funciona Spark?

Worker

Cada una de las máquinas esclavas de un cluster de Spark. Estos contienen a los Executor. Su número se define a nivel de Cluster de Spark

Executor

Se encargará de ejecutar las Application de Spark. Se ejecutan dentro de los Worker. Se definen a nivel de Application.(Spark siempre considera el Driver como un Executor)

Page 7: Spark web meetup

Terminología

¿Cóm funciona Spark?

Application

Cada uno de los Main’s en los que se crean SparkContext que usaremos para lanzar jobs de Spark. Dentro de cada Application se lanzará uno o varios Job(Ej: Spark-shell)

Job

Son los trabajos de Spark, todos terminan en una Acción. El DAG genera su longitud y está compuesto por distintos Stages.(Ej: salvar a fichero de texto/contar registros de un rdd)

Page 8: Spark web meetup

Terminología

¿Cóm funciona Spark?

Stage

Cada una de las partes en las que separa un Job el DAG, básicamente es todo lo que se puede hacer en una sóla Partition sin necesidad de hacer Shuffle. Cada Stage tiene varios Task

Task

Cada una de las tareas en las que se divide un Stage. Se realizarán tantos Tasks como particiones haya en cada operación de un stage.

Page 9: Spark web meetup

Terminología

¿Cóm funciona Spark?

Partition

Cada una de las partes en las que separa un RDD, contienen toda la información necesaria para que un Executor pueda ejecutar cada una de las Task

Page 10: Spark web meetup

¿En que nos puede ayudar una web de Spark?

¿Cóm funciona Spark?

● Nos ayuda a optimizar nuestro DAG.

● Los métodos ejecutados en los Task son transparentes para la Web.

● Tiene información de lo que entra y lo que sale no de lo que se hace dentro.

● Para Spark Streaming es el único punto de información “amigable”.

● Tiene información de todo el entorno.

● Almacena información de lo cacheado.

● Es independiente de ResourceManager*

Page 11: Spark web meetup

StandAlone

¿Cóm funciona Spark?

Page 12: Spark web meetup

YARN

¿Cóm funciona Spark?

Page 13: Spark web meetup

Mesos

¿Cóm funciona Spark?

Page 14: Spark web meetup

Consultar el pasado

¿Cóm funciona Spark?

Page 15: Spark web meetup

Spark jobs y la web2

Page 16: Spark web meetup

Introducción

¿Cóm funciona Spark?

● La web se agrupa por application.

● Podemos consultar información a varios niveles.

● No sólo es útil la información de los jobs.

● Nos permite llegar a todos los logs cuando se está ejecutando la aplicación.

Page 17: Spark web meetup

Application

Spark Batch y la web

Page 18: Spark web meetup

Job

Spark Batch y la web

Page 19: Spark web meetup

Stage

Spark Batch y la web

Page 20: Spark web meetup

Stage

Spark Batch y la web

Page 21: Spark web meetup

Cache

Spark Batch y la web

Page 22: Spark web meetup

Contadores

Spark Batch y la web

Page 23: Spark web meetup

Conclusiones

Spark Batch y la web

● Siempre controla el nivel de Shuffle de escritura y lectura.

● Controlar el tiempo de tarea

○ CONTROLAR EL EFECTO SE HA QUEDADO EN LA ÚLTIMA TAREA(nunca es la última)

● Ver el número de tareas por Stage (usar operaciones Values)

● Usa contadores para monitorizar tu trabajo (y arriesgate a que fallen en las transformaciones).

● Nombra a los RDD y asi podrás seguirlos.

Page 24: Spark web meetup

SparkSQL y la web3

Page 25: Spark web meetup

Introducción

Spark SQL y la web

● SparkSQL es uno de los módulos más importantes de Spark

● Posee un apartado propio dentro de la web

● Nos permite hacer cosas muy importantes de una manera “transparente” para el usuario

● Hace muchas operaciones sin que el usuario lo sepa.

● ¡La web nos permite ver parte de esos secretos!

Page 26: Spark web meetup

SparkSQL logical plan

Spark SQL y la web

Page 27: Spark web meetup

SparkSQL y stage web

Spark SQL y la web

Page 28: Spark web meetup

SparkSQL y stage web

Spark SQL y la web

Page 29: Spark web meetup

Conclusiones

Spark Batch y la web

● Hay que usar SQL siempre que se pueda porque facilita el trabajo

● Estudiar primero el comportamiento de los datasource y operaciones antes de usarlo

● Consultar el logical plan

Page 30: Spark web meetup

Spark streaming y la web4

Page 31: Spark web meetup

Introducción

Spark streaming y la web

● La web cobra especial importancia en Streaming

● Es el punto de consulta más amigable para la monitorización de nuestros trabajos

● Una vez más: no sólo es útil la información de los jobs.

Page 32: Spark web meetup

¿Cómo funciona Spark Streaming?

Spark streaming y la web

Kafka

RDD1 RDD2 RDD3 RDD4 RDD5

RDD1

RDD2

RDD3

RDD4

Page 33: Spark web meetup

Streaming Job web

Spark streaming y la web

Page 34: Spark web meetup

Streaming Job web

Spark streaming y la web

Page 35: Spark web meetup

Streaming Job web

Spark streaming y la web

Page 36: Spark web meetup

Streaming Job stages

Spark streaming y la web

Page 37: Spark web meetup

Streaming inputDStream

Spark streaming y la web

Page 38: Spark web meetup

Conclusiones

Spark Streaming y la web

● La spark web gana una importancial trancendental en los jobs de Streaming

● Si es importante para monitorizar un trabajo, ¡mucho más para uno por segundo!

● Tambien nos permite consultar datos de nuestros InputDstream

● Métricas de delays.

Page 39: Spark web meetup

Ruegos y preguntas

Ruegos y preguntas

Page 40: Spark web meetup

[email protected] ARE HIRING

@StratioBD

Page 41: Spark web meetup

¡Esto es todo amigos!

MUCHAS GRACIAS Y ANIMAROS A COMPARTIR CONOCIMIENTO

Page 42: Spark web meetup