meetup: cómo monitorizar y optimizar procesos de spark usando la spark web - 28 de marzo 2017

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

Upload: stratio

Post on 11-Apr-2017

20 views

Category:

Technology


0 download

TRANSCRIPT

Como optimizar y monitorizar trabajos de Spark con la Spark Web

Marzo 2017

Spark 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

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]

¿Cómo funciona Spark?1

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

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)

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)

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.

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

¿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*

StandAlone

¿Cóm funciona Spark?

YARN

¿Cóm funciona Spark?

Mesos

¿Cóm funciona Spark?

Consultar el pasado

¿Cóm funciona Spark?

Spark jobs y la web2

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.

Application

Spark Batch y la web

Job

Spark Batch y la web

Stage

Spark Batch y la web

Stage

Spark Batch y la web

Cache

Spark Batch y la web

Contadores

Spark Batch y la web

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.

SparkSQL y la web3

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!

SparkSQL logical plan

Spark SQL y la web

SparkSQL y stage web

Spark SQL y la web

SparkSQL y stage web

Spark SQL y la web

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

Spark streaming y la web4

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.

¿Cómo funciona Spark Streaming?

Spark streaming y la web

Kafka

RDD1 RDD2 RDD3 RDD4 RDD5

RDD1

RDD2

RDD3

RDD4

Streaming Job web

Spark streaming y la web

Streaming Job web

Spark streaming y la web

Streaming Job web

Spark streaming y la web

Streaming Job stages

Spark streaming y la web

Streaming inputDStream

Spark streaming y la web

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.

Ruegos y preguntas

Ruegos y preguntas

[email protected] ARE HIRING

@StratioBD

¡Esto es todo amigos!

MUCHAS GRACIAS Y ANIMAROS A COMPARTIR CONOCIMIENTO