Apache Zeppelin vs Jupyter : Découverte et POC

devops
data
docker
tutorial
Author

Sylvain Pham

Published

December 26, 2025

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/notebook

2. Démarrer Zeppelin

docker compose up -d

3. 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.csv

2. Analyse avec Pandas (Python)

%python
import pandas as pd
df = pd.read_csv('/tmp/titanic.csv')
z.show(df.head(10))

Résultat de l’analyse Pandas dans Zeppelin

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 down

Quand 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.