Ce projet est une preuve de concept (POC) pour apprendre à utiliser Apache Zeppelin et comprendre ses différences fondamentales avec Jupyter Notebook.
À quoi sert Apache Zeppelin ?
Apache Zeppelin est un notebook web interactif pour l’analyse de données. Contrairement à Jupyter qui se focalise souvent sur un seul langage par notebook, Zeppelin permet de mélanger plusieurs interpréteurs (Python, SQL, Shell, Spark, etc.) au sein d’un même document.
Différences clés avec Jupyter
| Fonctionnalité | Jupyter | Zeppelin |
|---|---|---|
| Multi-langage | Un kernel par notebook | Natif, changement par paragraphe |
| Visualisation | Code requis (matplotlib, etc.) | Intégrée, sans code |
| Big Data | Plugins nécessaires | Intégration native Hadoop/Spark |
| Directives | Non | %sh, %python, %sql, etc. |
| Poids Docker | ~500 MB | ~3 GB |
| Démarrage | Quelques secondes | 30+ secondes |
Installation Rapide
Le moyen le plus simple de tester est d’utiliser Docker.
1. Fichier docker-compose.yml
Téléchargez le fichier : docker-compose.yml
services:
zeppelin:
image: apache/zeppelin:0.11.2
container_name: zeppelin-poc
user: "1000:1000"
ports:
- "8080:8080"
environment:
ZEPPELIN_ADDR: 0.0.0.0
volumes:
- ./logs:/opt/zeppelin/logs
- ./notebook:/opt/zeppelin/notebook2. Démarrer Zeppelin
docker compose up -d3. Accéder à l’interface
Ouvrez votre navigateur sur : http://localhost:8080
Exemple de Workflow
Dans un nouveau notebook Zeppelin, vous pouvez tester ces paragraphes :
1. Récupération des données (Shell)
%sh
curl -s https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv -o /tmp/titanic.csv
head -n 5 /tmp/titanic.csv2. Analyse avec Pandas (Python)
%python
import pandas as pd
df = pd.read_csv('/tmp/titanic.csv')
z.show(df.head(10))
3. Visualisation
Sous le tableau généré par le paragraphe Python, cliquez sur les icônes de graphiques pour transformer les données en visualisations interactives sans code.
Nettoyage
Pour arrêter le service :
docker compose downQuand utiliser Zeppelin ?
Soyons honnêtes : Zeppelin est lourd (~3 GB, démarrage lent). Il ne se justifie pas pour un simple script pandas.
Zeppelin est pertinent si :
- Vous utilisez Spark/Hadoop : c’est son terrain de jeu naturel
- Vous mélangez SQL + Python + Shell dans un même notebook (ex: ETL multi-étapes)
- Vos utilisateurs sont non-techniques : les visualisations sans code sont un vrai plus
- Vous travaillez en équipe : collaboration native, permissions par notebook
Restez sur Jupyter si :
- Vous faites du Python/pandas classique
- Vous travaillez seul sur des analyses ponctuelles
- Vous avez besoin d’un démarrage rapide (Jupyter démarre en secondes)
- Vous êtes dans l’écosystème data science Python (meilleure intégration avec VS Code, extensions, etc.)
Conclusion
L’exemple de ce POC est volontairement simple pour découvrir l’outil. En pratique, Zeppelin prend tout son sens dans un contexte Big Data ou équipe mixte (analystes + développeurs).
Pour du Python pur ou de la data science classique, Jupyter reste le meilleur choix : plus léger, plus rapide, mieux intégré à l’écosystème moderne.