Apache Spark ya es una realidad en el mundo de la informática y ahora necesitamos no sólo saber de lo que la tecnología es capaz, necesitamos hacerlo productivo. Para ello necesitamos saber cómo poder auditar cada uno de sus procesos de una manera sencilla y sin necesidad de conocimientos destacados de esta tecnología.
Jorge López-Malla muestra qué herramientas proporciona el propio framework de Apache Spark para poder monitorizar el rendimiento de los algoritmos y cómo sacarle partido para mejorar los jobs de Apache Spark, tanto streaming como batch, y ver qué magia hace SparkSQL cuando se quiere hacer un simple join.
2. 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
3. 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: contact@stratio.com
5. 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
6. 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)
7. 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)
8. 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.
10. ¿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*
16. 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.
23. 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.
25. 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!
29. 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
31. 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.
32. ¿Cómo funciona Spark Streaming?
Spark streaming y la web
Kafka
RDD1 RDD2 RDD3 RDD4 RDD5
RDD1
RDD2
RDD3
RDD4
38. 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.