
Apache Hop 101, tutoriel pour la prise en main
By HUANG Mori
26 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.
Ce tutoriel détaille la création d’un projet, d’un pipeline et d’un workflow dans Apache Hop. En s’appuyant sur les concepts fondamentaux introduits dans l’article précédent et en utilisant l’environnement basé sur Docker, il couvre le cycle complet, de la conception d’un pipeline de données avec des transformations CSV jusqu’à son orchestration via un workflow et son exécution aussi bien en local que sur un serveur Hop distant.
Cet article fait partie d’une série de 2 articles :
- Apache Hop 101, introduction et installation
- Apache Hop 101, tutoriel pour la prise en main
Création d’un projet
Dans Hop Web, un nouveau projet est créé en cliquant sur le bouton “P+” situé en haut de l’interface.
- Name :
demo - Home folder :
~/projects/demo(assurez-vous que le projet se trouve en dehors du répertoire contenant les binaires de Hop) - Configuration file :
demo-config.json
La configuration du projet est validée en cliquant sur le bouton “OK”. Dans la boîte de dialogue suivante, cliquer sur le bouton “Yes” permet de lier le projet à un environnement ou un contexte d’exécution.
La configuration de l’environnement d’exécution permet au projet d’accéder à des variables et propriétés spécifiques de l’environnement.
- Name :
demo_env - Purpose :
Development
Création d’un pipeline
Un nouveau pipeline peut être créé en cliquant sur l’icône ”+” dans la barre d’outils supérieure de Hop Web, puis en sélectionnant “Pipeline” depuis la section “Fichier”. Le pipeline est alors vide, mais peut déjà être sauvegardé en cliquant sur l’icône “Enregistrer sous” dans la barre d’outils supérieure.
- Location :
/home/hop/projects/demo/pipeline-1.hpl
Le fichier de configuration du pipeline-1.hpl se trouve dans le répertoire du projet.
cat ./hop-web/projects/demo/pipeline-1.hplUn fichier source contenant une liste de pays est créé au format CSV.
cat <<EOF > ./hop-web/projects/demo/countries.csv
id,code,nom
1,fr,France
2,de,Allemagne
3,it,Italie
4,pl,Pologne
EOF
mkdir -p ./hop-server/projects/demo/
cp ./hop-web/projects/demo/countries.csv ./hop-server/projects/demo/Dans Hop Web, un clic dans le canevas ouvre l’éditeur de pipeline, permettant d’explorer les transformations disponibles. La transformation “CSV file input”, listée dans la catégorie “Input”, fait partie des options décrites dans la documentation des transformations de pipeline.
Une icône “CSV file input” est ajoutée au canevas avec la configuration suivante :
- Filename :
/home/hop/projects/demo/countries.csv - Header row present ? :
checked
Le bouton “Get Fields” analyse le schéma des données d’entrée, tandis que le bouton “Preview” affiche un échantillon des données.
Une deuxième transformation, “Text file output”, est ajoutée au caneva en la sélectionnant depuis la liste des transformations sous la catégorie “Output”. Une connexion est établie en cliquant sur la première transformation, en choisissant “Créer un lien (hop)”, puis en tirant une flèche vers la nouvelle transformation et en sélectionnant “Sortie principale de la transformation”. Cela configure le flux de données entre les transformations. L’étape suivante consiste à configurer les paramètres du fichier de sortie.
- File > Filename :
${PROJECT_HOME}/output - File > Extension :
csv
Dans l’onglet “Fields”, le bouton “Get Fields” remplit automatiquement les champs du fichier de sortie à partir de ceux du fichier d’entrée, et l’option “Largeur minimale” permet de supprimer des espaces en début et en fin de chaîne dans les colonnes de données.
Initialisation de Git
Le répertoire du projet est initialisé avec Git afin de permettre la gestion de version.
docker exec -it hop-web /bin/bash
cd /home/hop/projects/demo
git init
git config --global user.name "<Git username>"
git config --global user.email "<Git email>"L’icône “File Explorer” dans la barre latérale droite affiche les informations Git et permet d’effectuer des opérations Git directement depuis l’interface.
Création d’un workflow
De manière similaire à la création d’un pipeline, un nouveau workflow peut être créé en cliquant sur l’icône ”+” dans la barre d’outils supérieure. L’action initiale “Start” est automatiquement ajoutée. Le workflow peut être enregistré en cliquant sur l’icône “Enregistrer sous” dans la barre d’outils supérieure.
- Location :
/home/hop/projects/demo/workflow-1.hwf
Le canevas fournit un outil pour éditer le workflow et explorer les actions disponibles.
Un “hop” entre “Start” et “Pipeline” est créé en cliquant sur l’action “Start” puis en tirant la flèche vers l’action pipeline qui sera lui aussi cliquée. L’ouverture des paramètres de l’action (via “Edit the action”) permet de sélectionner le fichier pipeline-1.hpl.
Cela est suivi de deux actions supplémentaires : “Success” et “Abort workflow”, chacune étant reliée au pipeline par un “hop” pour indiquer son état d’exécution. Un message personnalisé peut être ajouté à l’action “Abort workflow”, lequel sera affiché en cas d’échec du pipeline.
Publication et exécution des workflows
Lancement local
Un pipeline et un workflow initiaux ont été créés et peuvent être exécutés.
Le bouton “play” situé sous le titre “pipeline-1” ouvre le panneau “Run Options”, qui contient divers paramètres d’exécution selon le cas d’usage.
- Pipeline run configuration :
local - Log level :
Debug
Le bouton “Launch” déclenche le processus d’exécution. Les détails pertinents sont affichés dans le panneau inférieur. Le fichier de sortie output.csv est généré dans le répertoire du projet.
Lancement distant
Un workflow peut être exécuté sur un serveur Hop distant. A partir du panneau “Méta-données” dont l’icône se trouve dans la barre latérale gauche, la connexion distante est configurée sous le type de méta-donnée “Hop Server”. Une nouvelle configuration de serveur est créée en double-cliquant sur “Hop Server” et en renseignant les différents champs.
- Hostname :
- Port :
8080 - Username :
demo - Password :
Le fichier de configuration est généré et stocké dans ”${PROJECT_HOME}/metadata/server”. L’adresse IP du conteneur peut être obtenue en exécutant la commande suivante :
docker inspect hop-server | grep "IPAddress"“Pipeline Run Configuration” est un type de métadonnée qui permet de définir comment et avec quel moteur d’exécution le pipeline sera exécuté. Ici une configuration distante qui permettra d’interagir avec un serveur Hop peut être définie. Son fichier de configuration est enregistré dans le répertoire ”${PROJECT_HOME}/metadata/pipeline-run-configuration”. Une configuration “local” y est déjà existante. En double-cliquant sur “Pipeline Run Configuration”, on ouvre la fenêtre à partir de laquelle sera définie la configuration d’une exécution à distance.
- Name :
remote - Description :
Remote pipeline submission - Execution information location :
local-audit - Engine type :
Hop remote pipeline engine - Hop server :
hop_server - Run Configuration :
local - Export linked resources to server :
checked
De manière similaire, “Workflow Run Configuration” permet de définir les paramètres d’interaction avec un serveur Hop. Son fichier de configuration est stocké dans ”${PROJECT_HOME}/metadata/workflow-run-configuration”.
- Name :
remote - Description :
Remote workflow submission - Execution information location :
local-audit - Workflow engine type :
Hop remote pipeline engine - Hop server :
hop_server - Run Configuration :
local - Export linked resources to server : checked
Lors de l’exécution du workflow-1 la fenêtre des paramètres d’exécution s’ouvre. On sélectionne la configuration “remote” puis on lance le workflow. Cette configuration permet d’exécuter le workflow sur un serveur Hop distant tout en affichant des logs de suivi détaillés.
- Workflow run configuration :
remote - Log level :
Debug
Dans l’onglet “Variables”, est définie la variable contenant le chemin du répertoire du projet.
- DATA_PATH_1 :
${PROJECT_HOME}
Le bouton “Launch” démarre l’exécution. Les détails de l’exécution apparaîtront dans le panneau inférieur ainsi que sur l’interface web du hop-server.
Une autre méthode pour exécuter le workflow à distance consiste à exécuter le script run.sh depuis une session bash.
docker exec -it hop-web /bin/bash
/usr/local/tomcat/webapps/ROOT/hop-run.sh \
--project demo \
--environment demo_env \
--level DEBUG \
--runconfig remote \
--parameters DATA_PATH_1=/home/hop/projects/demo \
--file /home/hop/projects/demo/workflow-1.hwfLes logs d’exécution seront visibles à la fois dans le terminal (CLI) et dans l’interface web de hop-server.
Conclusion
Apache Hop offre une solution moderne pour l’orchestration et l’ingénierie des données, avec une interface intuitive et conviviale. Il permet aux utilisateurs d’exécuter des tâches ETL et d’orchestrer des pipelines de manière visuelle, tout en offrant une extensibilité grâce à son système de plugins. De plus, l’intégration fluide avec Git permet de mettre en place facilement des pratiques GitOps, facilitant ainsi le contrôle de versions et le suivi des modifications directement dans l’interface. En conséquence, Hop simplifie la gestion des flux de données et renforce le contrôle opérationnel.
Après une présentation des concepts fondamentaux de Hop et de son architecture interne dans un article précédent, ce tutoriel introduit la création d’un pipeline et d’un workflow de base, et leur exécution en local comme à distance. Pour plus d’informations, veuillez consulter le site officiel.