EclairJS - Un peu de Spark dans les Web Apps
By WORMS David
17 juil. 2016
- Catégories
- Data Engineering
- Front End
- Tags
- Jupyter
- Spark
- JavaScript
Ne ratez pas nos articles sur l'open source, le big data et les systèmes distribués, fréquence faible d’un email tous les deux mois.
Présentation de David Fallside, IBM. Les images sont issues des slides de présentation.
Introduction
Le développement d’applications Web est passé d’un environnement Java vers des environnements Javascript avec NodeJS qui fournit des outils simples et riches à la fois avec NPM.
EclairJS est une librairie NodeJS fournissant des bindings sur une application Spark :
- Un RDD est représenté par un object JS rendu immutable
- Les opérateurs Spark sont mappés de manière transparente en fonctions JS (ex : flatMap, filter, …)
- Les fonctions JS mappées aux opérateurs Spark retournent des promesses
L’utilisation des promesses permet d’émuler l’utilisation du DAG par Spark :
- Les transformations renvoient un nouvel objet RDD et sont ajoutées au DAG
- Les actions exécutent le DAG afin de récupérer un résultat
Architecture
EclairJS est composé de deux éléments :
- Le client : API Javascript, installable avec NPM
- Le serveur : Javascript fournissant un mapping JS/Java et capable de tourner dans la JVM avec le projet Oracle Nashorn
Le serveur utilise également Jupyter Notebook afin d’exposer un point d’entrée WebSocket entre le client et le serveur.
Performance
En terme de performances, l’API Spark native en Java est bien plus rapide, cependant EclairJS est deux fois plus rapide que l’API PySpark, ce qui en fait une alternative tout à fait viable.
Conclusion
EclairJS est un bon projet, stable et utilisable, si vous avez besoin d’intégrer des jobs Spark dans une web app.