
Apache Hop 101, introduction et installation
By HUANG Mori
10 mai 2026
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.
Apache Hop est un outil d’ETL (Extract Transform and Load) conçue pour rendre le développement de pipelines intuitif, maintenable et évolutif.
Initialement issue d’un “fork” de Pentaho Data Integration (PDI ou Kettle), Apache Hop a depuis évolué indépendamment. Malgré quelques différences, il reste néanmoins quelques points communs avec PDI, ce qui en fait un atout pour les utilisateurs de PDI.
La plateforme d’orchestration des données et de data engineering permet non seulement aux data engineers de concevoir des workflows et des pipelines à partir d’une interface utilisateur, mais il prend aussi en charge le contrôle de version grâce à une architecture basée sur des fichiers et une intégration transparente avec la technologie Git.
Il est possible d’étendre les fonctionnalités de Hop en y ajoutant des plugins, notamment les moteurs de pipeline et de workflow, les bases de données, et d’autres composants. Ce qui en fait un système flexible.
Kettle/PDI et Hop
Les deux projets partagent des concepts similaires, rendant l’utilisation de Hop quasiment intuitif pour les utilisateurs de PDI. De plus, malgré certaines limitations, les projets PDI peuvent être importés dans Hop. Ce qui facilite considérablement la transition de projets PDI vers Hop.
La page Hop vs. Kettle apporte plus de détails sur la comparaison entre les deux solutions et sur le mode de transfert de projets PDI vers Hop.
Intégration avec Git
Apache Hop s’intègre avec Git pour permettre le contrôle de version, ce qui améliore la gestion des projets. Cela peut être effectué via la ligne de commande ou directement depuis l’interface graphique de Hop. Par exemple, la barre d’outils « File Explorer » dans l’interface inclut des options Git, permettant ainsi de gérer facilement les versions des pipelines et workflows. Cela permet aussi de gérer des processus d’intégration et de déploiement continus (CI/CD).
Apache Airflow propose également une approche similaire pour le contrôle de version et l’intégration CI/CD.
Interface visuelle conviviale
L’interface utilisateur de Hop est idéale pour exécuter des tâches d’orchestration des données via une plateforme intuitive. Les ingénieurs peuvent se concentrer sur la construction des pipelines et workflows sans se soucier de problématiques syntaxiques. Par ailleurs, les workflows et pipelines peuvent être exécutés de différentes façons, notamment via le serveur Hop en local ou à distance. En outre, les pipelines peuvent être exécutés sur Apache Beam avec divers moteurs d’exécution, notamment Apache Spark et Apache Flink. Pour plus de détails sur Apache Beam, consultez cet article d’Adaltas.
Extensibilité via les plugins
Il existe des plugins intégrés ainsi qu’une collection de plugins supplémentaires utilisables avec Apache Hop mais non inclus par défaut. Ceux-ci sont disponibles dans le dépôt GitHub Hop Plugins. Les plugins permettent d’étendre les fonctionnalités de Hop et peuvent être personnalisés selon des cas d’usage spécifiques.
Architecture de Hop
Interface utilisateur de Hop
Hop GUI est une interface visuelle utilisée pour créer, contrôler, et gérer des workflows et des pipelines. Elle permet aussi de surveiller leur exécution, de détecter et corriger les erreurs. Elle déplace l’orchestration des données d’une logique basée sur du code vers une approche visuelle et conviviale.
Hop Web
Hop Web offre une expérience similaire à Hop GUI accessible depuis un navigateur web. Cela permet un développement à distance, une collaboration simplifiée et une compatibilité multiplateforme sans nécessiter une installation locale. De plus, l’interface web garantit à tous les utilisateurs une même version de plateforme, éliminant ainsi les incohérences de version au sein des équipes.
Hop Server
Hop Server est un serveur léger permettant de gérer et d’exécuter des workflows et pipelines à l’aide de configurations d’exécution de type « Remote pipeline » ou « Remote workflow ».
Projets et environnements
Les projets sont des regroupements incluant des workflows, des pipelines, des objets de métadonnées et des variables. Un projet peut être associé à un ou plusieurs environnements.
Les environnements, quant à eux sont assignés à un projet donné. Ils sont utilisés principalement pour les configurations d’exécution contextuelle et autres métadonnées liés au projet.
Workflows and pipelines
Les workflows et pipelines constituent les blocs fondamentaux dans Hop.
Un pipeline traite directement les données par le biais d’opérations telles que le nettoyage, l’enrichissement ou l’écriture. En revanche, un workflow est conçu pour orchestrer une séquence de tâches ou d’actions, lesquelles peuvent inclure l’exécution de pipelines.
Un pipeline est composé d’une ou plusieurs “transforms” reliées par des “hops”, formant un réseau à travers lequel les données circulent d’une transformation à une autre. Chaque transformation représente une unité de traitement qui exécute une tâche spécifique : lire depuis une source de données, écrire dans une base de données ou un entrepôt de données, exécuter un script SQL, etc. Lors de l’exécution d’un pipeline, toutes les transformations sont exécutées en parallèle.
Un workflow, quant à lui, est constitué d’actions reliées par des “hops”. Contrairement aux pipelines qui agissent directement sur les données, les workflows orchestrent des opérations comme l’exécution d’autres workflows, de pipelines, la gestion de fichiers distants, ou l’envoi de notifications. Un workflow commence par un point de départ défini et peut inclure un ou plusieurs points de fin. Par défaut, les actions dans un workflow sont exécutées de manière séquentielle : chaque action n’est exécutée qu’une fois la précédente terminée. Chaque action représente une tâche spécifique : par exemple exécuter un autre workflow, un pipeline, gérer des fichiers ou envoyer des alertes. Une fois son exécution terminée, une action retourne un code de sortie qui est une valeur booléenne. Ce code de sortie peut être utilisé pour contrôler l’étape suivante dans le workflow.
Dans les pipelines comme dans les workflows, les “hops” définissent le flux d’exécution. Dans les pipelines, ils relient les transforms. Dans les workflows, ils relient les actions.
Pour en savoir plus sur les concepts clés d’Apache Hop, consultez la documentation officielle et explorez son architecture en détail ici.
Configuration de l’environnement
Prérequis
Docker doit être installé. Si ce n’est pas le cas, veuillez suivre le guide getting started sur le site officiel de Docker pour configurer rapidement un environnement de test d’Apache Hop.
Lancer un conteneur Docker comme environnement de démonstration pour Hop
Le répertoire hop-demo est créé dans le dossier personnel, avec deux sous-répertoires : hop-web et hop-server. Un fichier Docker Compose au format YAML est ajouté dans hop-demo afin de lancer les conteneurs pour l’interface graphique web de Hop (Hop Web) ainsi que pour le serveur Hop.
mkdir -p ~/hop-demo/hop-web ~/hop-demo/hop-server
cd ~/hop-demo
cat <<EOF > compose.yaml
services:
hop-web:
image: apache/hop-web:latest
container_name: hop-web
ports:
- "8080:8080"
environment:
HOP_HOME: /home/hop
HOP_SERVER_URL: http://localhost:8080
HOP_SERVER_PORT: 8080
HOP_SERVER_CONTEXT_PATH: /hop
volumes:
- ./hop-web:/home/hop
networks:
- hop-network
hop-server:
image: apache/hop:latest
container_name: hop-server
ports:
- "8081:8080"
environment:
HOP_HOME: /home/hop
HOP_SERVER_URL: http://localhost:8081
HOP_SERVER_PORT: 8080
HOP_SERVER_CONTEXT_PATH: /hop
HOP_SERVER_USER: demo
HOP_SERVER_PASS: <password>
volumes:
- ./hop-server:/home/hop
networks:
- hop-network
networks:
hop-network:
driver: bridge
EOFL’environnement de démonstration est créé avec Docker Compose.
docker compose up -dLes interfaces de Hop Web et de Hop Server sont accessibles via leurs ports par défaut respectifs : 8080 pour Hop Web et 8081 pour Hop Server.
Conclusion
Apache Hop est une solution d’ETL moderne et flexible, alliant une interface visuelle intuitive, une intégration native avec Git et une architecture extensible adaptée aux besoins des data engineers. Le prochain article de cette série approfondit la création de pipelines et de workflows concrets, en exploitant les capacités de la plateforme.