Livy es una librería open-source que permite interactuar con un cluster Spark vía un interface REST.
Permite enviar Jobs Spark o simples trozos de código Spark de forma síncrona o asíncrona.
Livy simplifica la interacción con Spark desde aplicaciones móviles, AppServers,….
Entre sus características:
· Gestión de la seguridad
· Ofrece SparkContexts long-running que pueden usarse para múltiples Jobs Spark desde múltiples clientes
· Comparte DataFrames y RDDs entre Jobs y clientes
· Gestión simultánea de diversos SparkContexts (permite por ejemplo tener uno por cliente ;)) lo que es muy interesante para el multiteant, gestión de la concurrencia,…
· Los Jobs pueden enviarse como JARS, trozos de código, API Java, Scala, Python.
Veamos cómo se puede usar:
Cargando un JAR con un Job Spark:
Lanzando un código Spark directamente:
Primero establezco una sesión:
Que una vez iniciada para al estado idle:
Una vez en este estado puede enviar el código (aquí un simple 1+1):
Para obtener el resultado del proceso haré un polling:
Con la sesión puedo lanzar código más complejo:
Finalmente cierro la sesión:
![]()
Muy interesante también es su integración con Zeppelin como intérprete Zeppelin, lo que nos permite invocarlo así:
Y soportar multitenant: Apache Zeppelin + Livy: Bringing Multi Tenancy to Interactive Data Analysis
También soporta el uso de Dynamics Forms de Zeppelin:











Deja un comentario