Apache Zeppelin est un web notebook. Le concept de notebook a été introduit par iPython, à partir de sa version 3, qui a été restructurée pour donner lieu à Jupyter, qui permettait de travailler sur des interfaces web au lieu d’un environnement basé sur Shell. Avec un web notebook, vous pouvez exécuter du code dans plusieurs langages, faire des analyses, des visualisations, etc. De même, le notebook permet de partager le code et les processus avec d’autres personnes, qui pourront les comprendre, les modifier et les adapter en fonction de leur besoin.
Qu'est-ce que Apache Zeppelin ?
Apache Zeppelin est une implémentation de ce concept centrée sur l’analyse de données interactive qui supporte des technos comme Shell, Spark, Spark SQL, Hive, Elasticsearch, R, etc.
Il possède plusieurs caractéristiques :
- simple : même si vous êtes débutant dans la manipulation de données, vous devriez rapidement vous trouver à l’aise avec la construction d’applications sur Hive ou Spark SQL ;
- modulable : il s’agit d’une architecture totalement basée sur les plugins ;
- indépendance du langage : vous pourrez développer des applications dans beaucoup de langages ;
- comprend une interface pour Bootstrap et Angular JS ;
- intégration totale avec Java, Hadoop et Spark, pour citer quelques exemples.
Néanmoins, Zeppelin est encore en évolution et la communauté autour de lui continue à se développer. Une façon très simple de démarrer avec Zeppelin est de l’installer sur une VM Hadoop.
Quelles différences avec Jupyter ?
L'installation de Zeppelin
L’installation de Zeppelin est un peu plus compliquée que celle de Jupyter. Pour installer ce dernier, Anaconda s’occupe de tout faire pour vous, alors que dans le cas de Zeppelin, vous devrez effectuer quelques étapes manuellement.
La communauté
Étant donné que Jupyter a été lancé en 2012 et qu’il est utilisé par Google et la Nasa, il compte sans surprise une très grande communauté, beaucoup plus importante que celle de Zeppelin.
L'interface de Zeppelin
L’interface graphique est presque la même pour les deux. Il est doté d’une option pour combiner plusieurs paragraphes en une seule ligne et d’un outil de visualisation de données. Jupyter dispose de quelques options de plus pour manipuler le texte.
La compatibilité
Zeppelin n’est pas compatible avec Windows. Jupyter peut être utilisé sur tous les OS.
Les plugins pour Python
Jupyter compte plus de plugins pour développer avec Python, du fait de sa plus grande communauté de développeurs.
La sécurité dans Apache Zeppelin
Il s’agit d’un aspect très important quand il s’agit d’un développement à plusieurs, c’est-à-dire la grande majorité de projets. Vous devriez avoir des options pour permettre ou empêcher des tierces personnes d’accéder, voire de modifier vos notebooks. Jupyter ne dispose pas de cette option.
Sur Zeppelin, vous pourrez aisément configurer la sécurité de vos développements et créer des groupes séparés pour certains utilisateurs.
Les interprètes
Zeppelin est clairement avantageux dans cet aspect car il dispose d’interprètes pour Spark, MD, Angular, Sh, Python, Pig, Sap, Groovy, Elasticsearch et beaucoup d’autres.
La gestion des utilisateurs multiples
Là encore, Zeppelin a un avantage très important par rapport à Jupyter. Vous pourrez facilement gérer tous les utilisateurs. Sur Jupyter, vous aurez besoin d’installer JupyterHub et de créer un serveur pour chaque utilisateur.
La visualisation de graphiques
Zeppelin crée des visualisations interactives plus rapidement que Jupyter. Il utilise Matplotlib qui permet de sauvegarder les visualisations dans un fichier HTML.
Comment utiliser Spark avec Zeppelin ?
Il y a beaucoup d’options d’utilisation de Spark. La manière le plus orthodoxe est d’utiliser un cluster (Spark peut s’exécuter sur plusieurs systèmes), mais pour débuter, vous pouvez l’installer localement. Apache Zeppelin vous offre une installation par défaut de Spark qui peut être utilisé sans vous perdre dans des configurations trop complexes.
Une fois que vous aurez téléchargé Zeppelin, vous pourrez l’exécuter avec cette commande :
~/zeppelin-dir $ bin/zeppelin-daemon.sh start
Ensuite, vous pourrez accéder à http://localhost:8080 pour voir la page principale. Pour l’arrêter, vous pouvez tout simplement écrire la commande suivante :
~/zeppelin-dir $ bin/zeppelin-daemon.sh stop
Il dispose également d’une image Docker qui peut être utilisée facilement :
$ docker run -p 8080:8080 --rm -- name zeppelin apache/zeppelin:0.7.3
Et ensuite, vous pourrez aller à l’adresse « localhost:8080« .
Une fois devant Zeppelin, vous pouvez créer un nouveau notebook (« Create new note »), définir un nom et choisir l’interprète par défaut (Spark). Vous verrez ensuite le notebook en blanc prêt à contenir tous vos développements !