Description
Un job de Spark es fácil de escribir y difícil de hacer terminar. Las mismas tres líneas que vuelan sobre mil filas se arrastran seis horas sobre mil millones, y las movidas de siempre lo empeoran: agregás executors y no acelera nada, subís la memoria y igual spillea a disco, cacheás un DataFrame y el job se pone más lento. Spark esconde toda una máquina distribuida atrás de una API que parece pandas, así que cuando un job se traba en la misma etapa cada noche no tenés idea de si el problema es un shuffle, una clave skew, una cantidad de particiones o una estrategia de join, y la documentación describe las perillas sin decirte cuál apunta a tu síntoma. Lo que falta no es la API. Es un modelo mental de qué pasa por todo el cluster cuando apretás correr, y casi nadie lo enseña en el orden en que las fallas de verdad te pegan.
Este libro te da el modelo mental que convierte a Spark de una caja negra que a veces termina en una máquina sobre la que podés razonar. Arranca donde arranca el dolor: un job que corre en segundos sobre una muestra y nunca termina sobre los datos reales, y por qué tirarle hardware no ayuda. De ahí construye, en el orden en que un job real te fuerza las preguntas, la imagen de qué hace Spark en realidad cuando apretás correr: cómo parte tus datos y tu trabajo por un cluster de máquinas para que las piezas corran en paralelo, por qué tus transformaciones no hacen nada hasta que una action las fuerza y cómo leer eso a tu favor, qué es un shuffle y por qué la etapa que debería ser rápida es la que se arrastra, por qué una sola clave popular puede hacer que una tarea corra una hora mientras el resto está de brazos cruzados, cuándo conviene tener los datos en memoria y qué pasa cuando no entran, y cómo escribir la salida que el próximo job y el próximo analista de verdad puedan usar, para después correr todo en un cluster que no tenés que cuidar. Cada idea aterriza sobre un mismo dataset de ejemplo, un servicio de música que convierte mil millones de eventos de reproducción por día en los números que le pagan a los artistas, así ves cada concepto arreglar una falla real y cara. El libro no recorre la superficie de la API. Te enseña a mirar un job lento y saber a dónde se va el tiempo, que es la diferencia entre un ingeniero que escribe Spark y uno al que los jobs le terminan a tiempo y le cuestan la mitad. Para el ingeniero que quiere que big data deje de ser un misterio y pase a ser algo que puede dimensionar, tunear y en lo que puede confiar.
Quién debería leerlo
Este libro es para: el ingeniero al que el job de Spark le corre bien sobre una muestra y después se le cuelga horas sobre el dataset completo, que le tiró más memoria y más executors y lo vio ponerse más lento, y que quiere entender de verdad qué hace el cluster para que un job de mil millones de filas termine a tiempo en vez de morir en el 90 por ciento.
El framework de este libro
Los 6 pasos para la habilidad de big data por la que las empresas pagan sueldo de senior. El modelo mental que convierte a Apache Spark de un job que a veces termina en una máquina sobre la que podés razonar. En vez de tirarle executors y memoria a un job que se arrastra, aprendés a ver qué pasa de verdad por todo el cluster cuando apretás correr, así podés mirar una etapa lenta y saber exactamente a dónde se van el tiempo y la plata. Seis pasos te llevan de mil millones de filas que no entran en una sola máquina a un job que termina a tiempo, en un cluster que no tenés que cuidar. Pasás del ingeniero al que el job de Spark se le muere en el 90 por ciento, al que tiene pipelines rápidos, baratos y aburridos.
Todos los capítulos, uno por uno
- Capítulo 1: La noche que mi job corrió seis horas y murió en el 90 por ciento
- Capítulo 2: Y ¿a dónde va mi dato en realidad cuando aprieto correr?
- Capítulo 3: Escribí diez líneas de transformaciones y no pasó nada. ¿Está roto?
- Capítulo 4: ¿Por qué mi job se arrastra justo en el paso que debería ser rápido?
- Capítulo 5: Junté dos tablas y una tarea corrió una hora mientras el resto terminaba
- Capítulo 6: Cacheé un DataFrame y mi job se puso más lento. ¿Qué?
- Capítulo 7: El job anda en mi laptop. ¿Cómo lo corro en serio sin tener que cuidarlo?
- Capítulo 8: El mismo job, un año después: cómo aprender a ver el cluster me cambió el trabajo


