Il est intéressant de noter que les statistiques de Forbes révèlent qu’environ 90 % des entreprises à l’échelle mondiale tirent parti de l’analyse des Big Data pour élaborer leurs rapports d’investissement.
La popularité croissante des Big Data s’accompagne d’une augmentation notable des opportunités d’emploi liées à Hadoop, une tendance plus marquée qu’auparavant.
C’est pourquoi, pour vous aider à décrocher ce poste d’expert Hadoop, nous avons compilé dans cet article une série de questions et réponses d’entretien. Elles vous serviront de guide pour réussir votre entretien.
Peut-être que la perspective des salaires attractifs associés aux rôles Hadoop et Big Data vous motivera à préparer cet entretien, n’est-ce pas ? 🤔
- Selon les données d’Indeed.com, un développeur Big Data Hadoop basé aux États-Unis perçoit un salaire moyen de 144 000 $.
- D’après itjobswatch.co.uk, le salaire moyen d’un développeur Big Data Hadoop s’élève à 66 750 £.
- En Inde, Indeed.com indique que le salaire moyen se situe autour de 16 000 000 ₹.
Ces chiffres sont plutôt alléchants, n’est-ce pas ? Plongeons maintenant dans l’univers d’Hadoop.
Qu’est-ce que Hadoop ?
Hadoop est un framework open-source, principalement écrit en Java, qui exploite des modèles de programmation pour le traitement, le stockage et l’analyse de vastes ensembles de données.
Sa conception permet une transition fluide d’un serveur unique à une architecture distribuée sur plusieurs machines, offrant des capacités de calcul et de stockage locales. De plus, sa capacité à détecter et à gérer les défaillances au niveau de la couche application garantit des services hautement disponibles, faisant d’Hadoop un outil extrêmement fiable.
Passons sans plus tarder aux questions d’entretien les plus fréquemment posées sur Hadoop, ainsi qu’à leurs réponses précises.
Questions et réponses d’entretien sur Hadoop
Quelle est l’unité de stockage dans Hadoop ?
Réponse : L’unité de stockage dans Hadoop est appelée Hadoop Distributed File System (HDFS), soit le système de fichiers distribué Hadoop.
En quoi le stockage en réseau diffère-t-il du système de fichiers distribué Hadoop ?
Réponse : Le HDFS, qui constitue le système de stockage principal de Hadoop, est un système de fichiers distribué conçu pour stocker de volumineux fichiers en utilisant du matériel standard. À l’inverse, le NAS (Network Attached Storage) est un serveur de stockage de données informatiques au niveau des fichiers, permettant à des groupes hétérogènes de clients d’accéder aux données.
Alors que le stockage de données dans le NAS repose sur un matériel dédié, le HDFS distribue les blocs de données sur toutes les machines du cluster Hadoop.
Le NAS utilise des périphériques de stockage haut de gamme, ce qui implique un coût élevé, tandis que le matériel standard utilisé dans le HDFS est beaucoup plus économique.
Le NAS sépare le stockage des données des calculs, ce qui le rend inadapté à l’approche MapReduce. En revanche, la conception du HDFS est optimisée pour fonctionner avec le framework MapReduce. Dans ce framework, les calculs sont déplacés vers les données, plutôt que l’inverse.
Expliquez le fonctionnement de MapReduce dans Hadoop et le Shuffling
Réponse : MapReduce fait référence à deux phases distinctes que les programmes Hadoop exécutent pour permettre une grande évolutivité sur des centaines, voire des milliers de serveurs au sein d’un cluster Hadoop. Le Shuffling, quant à lui, est le processus qui consiste à transférer la sortie de la phase de mappage vers le réducteur approprié dans le contexte de MapReduce.
Donnez un aperçu de l’architecture d’Apache Pig

Réponse : L’architecture d’Apache Pig repose sur un interpréteur Pig Latin, qui permet de traiter et d’analyser de vastes ensembles de données au moyen de scripts Pig Latin.
Apache Pig se compose également d’ensembles de données sur lesquels sont réalisées diverses opérations, telles que la jointure, le chargement, le filtrage, le tri et le regroupement.
Le langage Pig Latin utilise des mécanismes d’exécution comme les shells Grant, les UDF et les fonctions intégrées pour élaborer des scripts Pig qui accomplissent les tâches requises.
Pig simplifie le travail des développeurs en convertissant ces scripts en séquences de tâches MapReduce.
Les composants de l’architecture d’Apache Pig comprennent :
- Analyseur : Il traite les scripts Pig en vérifiant leur syntaxe et en effectuant une vérification de type. La sortie de l’analyseur représente les instructions et les opérateurs logiques de Pig Latin, et est connue sous le nom de DAG (graphe acyclique dirigé).
- Optimiseur : L’optimiseur met en œuvre des optimisations logiques telles que la projection et le pushdown sur le DAG.
- Compilateur : Il compile le plan logique optimisé issu de l’optimiseur en une série de tâches MapReduce.
- Moteur d’exécution : C’est ici que l’exécution finale des tâches MapReduce a lieu, aboutissant au résultat souhaité.
- Mode d’exécution : Les modes d’exécution dans Apache Pig comprennent principalement le mode local et le mode MapReduce.
Réponse : Dans le contexte du métastore local, le service Metastore fonctionne au sein de la même JVM que Hive, mais se connecte à une base de données qui s’exécute dans un processus distinct, que ce soit sur la même machine ou sur une machine distante. À l’inverse, dans le cas du métastore distant, le Metastore s’exécute dans sa propre JVM, distincte de celle du service Hive.
Quels sont les Cinq V des Big Data ?
Réponse : Ces cinq V représentent les principales caractéristiques des Big Data. Elles comprennent :
- Valeur : Les Big Data cherchent à générer des avantages significatifs, avec un retour sur investissement élevé pour une entreprise qui exploite les Big Data dans ses opérations. Cette valeur est obtenue grâce à la découverte d’informations et à la reconnaissance de schémas, ce qui entraîne notamment des relations clients plus solides et des opérations plus efficaces.
- Variété : Elle représente l’hétérogénéité des types de données collectées. Les différents formats incluent les fichiers CSV, les vidéos, les fichiers audio, etc.
- Volume : Définit la quantité et la taille considérables des données gérées et analysées par une entreprise. Ces données connaissent une croissance exponentielle.
- Vélocité : Il s’agit du taux de croissance exponentiel des données.
- Véracité : La véracité fait référence au niveau d’incertitude ou d’inexactitude des données disponibles, causé par des données incomplètes ou incohérentes.
Expliquez les différents types de données dans Pig Latin.
Réponse : Les types de données en Pig Latin se divisent en types de données atomiques et en types de données complexes.
Les types de données atomiques sont les types de données de base utilisés dans de nombreux langages. Ils comprennent les éléments suivants :
- Int : Ce type de données définit un entier signé sur 32 bits. Exemple : 13
- Long : Long définit un entier sur 64 bits. Exemple : 10L
- Float : Définit un nombre à virgule flottante signé sur 32 bits. Exemple : 2,5 F
- Double : Définit un nombre à virgule flottante signé sur 64 bits. Exemple : 23,4
- Booléen : Définit une valeur booléenne. Il comprend : Vrai/Faux
- Datetime : Définit une valeur date-heure. Exemple : 1980-01-01T00:00.00.000+00:00
Les types de données complexes incluent :
- Map : Un Map fait référence à un ensemble de paires clé-valeur. Exemple : [‘color’#’yellow’, ‘number’#3]
- Bag : Il s’agit d’une collection d’ensembles de tuples, et utilise le symbole ‘{}’. Exemple : {(Henri, 32), (Kiti, 47)}
- Tuple : Un tuple définit un ensemble ordonné de champs. Exemple : (Âge, 33)
Que sont Apache Oozie et Apache ZooKeeper ?
Réponse : Apache Oozie est un planificateur Hadoop qui orchestre et enchaîne les tâches Hadoop en un seul flux de travail logique.
Apache ZooKeeper, d’autre part, assure la coordination entre divers services dans un environnement distribué. Il fait gagner du temps aux développeurs en exposant des services simples comme la synchronisation, le regroupement, la gestion de la configuration et la dénomination. Apache ZooKeeper propose également des fonctionnalités de file d’attente et d’élection de leader prêtes à l’emploi.
Quel est le rôle du Combiner, du RecordReader et du Partitioner dans une opération MapReduce ?
Réponse : Le Combiner agit comme un mini-réducteur. Il reçoit et traite les données issues des tâches de mappage, puis transfère le résultat à la phase de réduction.
Le RecordReader interagit avec le InputSplit et convertit les données en paires clé-valeur pour permettre au Mapper de les lire correctement.
Le Partitionner est responsable de déterminer le nombre de tâches de réduction nécessaires pour résumer les données, ainsi que la manière dont les sorties du Combiner sont envoyées au Reducer. Le Partitionner contrôle également le partitionnement des clés issues des sorties intermédiaires du Mapper.
Mentionnez les différentes distributions spécifiques à un fournisseur de Hadoop.
Réponse : Les différents fournisseurs qui étendent les fonctionnalités de Hadoop incluent :
- Plateforme ouverte IBM.
- Distribution Cloudera CDH Hadoop
- Distribution MapR Hadoop
- Amazon Elastic MapReduce
- Plateforme de données Hortonworks (HDP)
- Suite Pivotal Big Data
- Analyse d’entreprise Datastax
- HDInsight de Microsoft Azure – Distribution Hadoop basée sur le cloud.
Pourquoi HDFS est-il tolérant aux pannes ?
Réponse : HDFS assure la tolérance aux pannes en répliquant les données sur différents DataNodes. Le stockage des données sur plusieurs nœuds permet de les récupérer à partir d’autres nœuds en cas de défaillance de l’un d’entre eux.
Distinguez la fédération et la haute disponibilité.
Réponse : La fédération HDFS offre une tolérance aux pannes qui permet un flux de données continu dans un nœud lorsqu’un autre tombe en panne. D’autre part, la haute disponibilité nécessite deux machines distinctes configurant séparément le NameNode actif et le NameNode secondaire sur les première et deuxième machines.
La fédération peut avoir un nombre illimité de NameNodes non liés, tandis qu’en haute disponibilité, seuls deux NameNodes liés, actif et en veille, qui fonctionnent en continu, sont disponibles.
Les NameNodes de la fédération partagent un pool de métadonnées, chaque NameNode ayant son propre pool dédié. En haute disponibilité, cependant, les NameNodes actifs s’exécutent chacun à la fois, tandis que les NameNodes de secours restent inactifs et ne mettent à jour leurs métadonnées qu’occasionnellement.
Comment vérifier l’état des blocs et la santé du système de fichiers ?
Réponse : Vous utilisez la commande `hdfs fsck /` au niveau de l’utilisateur racine et dans un répertoire individuel pour vérifier l’état de santé du système de fichiers HDFS.
Commande fsck HDFS en cours d’utilisation :
hdfs fsck / -files --blocks –locations> dfs-fsck.log
Description de la commande :
- `-files` : affiche les fichiers que vous vérifiez.
- `–locations` : affiche les emplacements de tous les blocs lors de la vérification.
Commande pour vérifier l’état des blocs :
hdfs fsck <chemin> -files -blocks
- `<chemin>` : commence les vérifications à partir du chemin transmis ici.
- `– blocks` : affiche les blocs du fichier lors de la vérification
Quand utilisez-vous les commandes `rmadmin-refreshNodes` et `dfsadmin-refreshNodes` ?
Réponse : Ces deux commandes sont utiles pour actualiser les informations sur un nœud, soit lors de sa mise en service, soit une fois la mise en service terminée.
La commande `dfsadmin-refreshNodes` exécute le client HDFS et actualise la configuration du nœud du NameNode. La commande `rmadmin-refreshNodes`, quant à elle, exécute les tâches administratives du ResourceManager.
Qu’est-ce qu’un point de contrôle ?
Réponse : Un point de contrôle est une opération qui fusionne les dernières modifications du système de fichiers avec l’image FSImage la plus récente, de manière à ce que les fichiers journaux de modification restent suffisamment petits pour accélérer le processus de démarrage d’un NameNode. Le point de contrôle est réalisé dans le NameNode secondaire.
Pourquoi utilisons-nous HDFS pour les applications ayant de grands ensembles de données ?
Réponse : HDFS fournit une architecture DataNode et NameNode qui implémente un système de fichiers distribué.
Ces deux architectures offrent un accès haute performance aux données sur des clusters Hadoop hautement évolutifs. Son NameNode stocke les métadonnées du système de fichiers dans la RAM, ce qui entraîne une limitation de la mémoire et du nombre de fichiers du système de fichiers HDFS.
Que fait la commande `jps` ?
Réponse : La commande Java Virtual Machine Process Status (JPS) vérifie si des démons Hadoop spécifiques, notamment NodeManager, DataNode, NameNode et ResourceManager, sont en cours d’exécution ou non. Cette commande doit être exécutée à partir du répertoire racine pour vérifier les nœuds en fonctionnement sur l’hôte.
Qu’est-ce que l’« exécution spéculative » dans Hadoop ?
Réponse : Il s’agit d’un processus dans lequel le nœud maître dans Hadoop, au lieu de corriger les tâches lentes détectées, lance une instance différente de la même tâche en tant que tâche de sauvegarde (tâche spéculative) sur un autre nœud. L’exécution spéculative permet de gagner beaucoup de temps, en particulier dans un environnement de charge de travail intensive.
Nommez les trois modes dans lesquels Hadoop peut fonctionner.
Réponse : Les trois modes principaux sur lesquels Hadoop s’exécute incluent :
- Le mode autonome, qui est le mode par défaut, exécute les services Hadoop en utilisant le système de fichiers local et un seul processus Java.
- Le mode pseudo-distribué, qui exécute tous les services Hadoop à l’aide d’un seul déploiement Hadoop ode.
- Le mode entièrement distribué, qui exécute les services maître et esclave Hadoop à l’aide de nœuds distincts.
Qu’est-ce qu’une UDF ?
Réponse : Les UDF (fonctions définies par l’utilisateur) vous permettent de coder vos fonctions personnalisées, que vous pouvez ensuite utiliser pour traiter les valeurs des colonnes lors d’une requête Impala.
Qu’est-ce que DistCp ?
Réponse : DistCp, ou Distributed Copy, est un outil pratique pour la copie de données à grande échelle, que ce soit entre clusters ou au sein d’un même cluster. En utilisant MapReduce, DistCp assure une copie distribuée efficace d’importants volumes de données, et gère d’autres tâches telles que la gestion des erreurs, la récupération et la génération de rapports.
Réponse : Le Hive metastore est un service qui stocke les métadonnées des tables Apache Hive dans une base de données relationnelle, telle que MySQL. Il fournit l’API de service metastore qui permet d’accéder aux métadonnées.
Définissez RDD.
Réponse : RDD, qui signifie Resilient Distributed Datasets (ensembles de données distribués résilients), est la structure de données fondamentale de Spark, et une collection distribuée immuable de vos éléments de données qui sont calculés sur les différents nœuds du cluster.
Comment intégrer des bibliothèques natives dans les tâches YARN ?
Réponse : Vous pouvez y parvenir en utilisant `-Djava.library.path` dans la commande, ou en définissant `LD+LIBRARY_PATH` dans le fichier `.bashrc` en utilisant le format suivant :
<property> <name>mapreduce.map.env</name> <value>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/my/libs</value> </property>
Expliquez le rôle du `WAL` dans HBase.
Réponse : Le Write Ahead Log (WAL) est un protocole de récupération qui enregistre les modifications de données du MemStore vers le stockage basé sur fichiers dans HBase. Le WAL permet de récupérer ces données en cas de plantage du RegionalServer, ou avant de vider le MemStore.
YARN remplace-t-il Hadoop MapReduce ?
Réponse : Non, YARN ne remplace pas Hadoop MapReduce. Au contraire, une technologie puissante appelée Hadoop 2.0 ou MapReduce 2 prend en charge MapReduce.
Quelle est la différence entre `ORDER BY` et `SORT BY` dans HIVE ?
Réponse : Bien que les deux commandes permettent de récupérer les données de manière triée dans Hive, les résultats de l’utilisation de `SORT BY` peuvent ne présenter qu’un tri partiel.
De plus, `SORT BY` nécessite un réducteur pour effectuer le tri des lignes. Il est possible que plusieurs réducteurs soient nécessaires à la production du résultat final. Dans ce cas, l’ensemble du résultat peut être partiellement trié.
En revanche, `ORDER BY` ne nécessite qu’un seul réducteur pour un tri complet en sortie. Vous pouvez également utiliser le mot-clé `LIMIT` qui réduit le temps de tri total.
Quelle est la différence entre Spark et Hadoop ?
Réponse : Bien que Hadoop et Spark soient tous deux des frameworks de traitement distribués, leur principale différence réside dans leur méthode de traitement. Hadoop est optimisé pour le traitement par lots, tandis que Spark est plus efficace pour le traitement de données en temps réel.
En outre, Hadoop lit et écrit principalement des fichiers sur HDFS, tandis que Spark utilise le concept de Resilient Distributed Dataset pour traiter les données en mémoire vive (RAM).
En termes de latence, Hadoop est un framework informatique à latence élevée sans mode interactif pour le traitement des données, alors que Spark est un framework informatique à faible latence qui permet le traitement interactif des données.
Comparez Sqoop et Flume.
Réponse : Sqoop et Flume sont des outils Hadoop utilisés pour collecter des données à partir de diverses sources et les charger dans HDFS.
- Sqoop (SQL-to-Hadoop) extrait des données structurées de bases de données, notamment Teradata, MySQL, Oracle, etc., tandis que Flume est utile pour extraire des données non structurées de sources de bases de données et les charger dans HDFS.
- En ce qui concerne les événements, Flume est piloté par les événements, contrairement à Sqoop.
- Sqoop utilise une architecture basée sur des connecteurs, où les connecteurs savent comment se connecter à une autre source de données. Flume utilise une architecture à base d’agents, le code écrit agissant comme l’agent chargé de récupérer les données.
- Grâce à la nature distribuée de Flume, il peut facilement collecter et agréger des données. Sqoop est particulièrement utile pour le transfert de données en parallèle, qui aboutit à une sortie dans plusieurs fichiers.
Expliquez le concept de BloomMapFile.
Réponse : BloomMapFile est une classe qui étend la classe MapFile et utilise des filtres de Bloom dynamiques, qui permettent un test d’appartenance rapide pour les clés.
Énumérez les différences entre HiveQL et PigLatin.
Réponse : Alors que HiveQL est un langage déclaratif similaire à SQL, PigLatin est un langage procédural de haut niveau pour la manipulation de flux de données.
Qu’est-ce que le nettoyage des données ?
Réponse : Le nettoyage des données est un processus crucial qui consiste à éliminer ou corriger les erreurs identifiées dans un ensemble de données, notamment les données incorrectes, incomplètes, corrompues, en double ou mal formatées.
Ce processus vise à améliorer la qualité des données, en garantissant des informations plus précises, cohérentes et fiables, indispensables à une prise de décision efficace au sein d’une organisation.
Conclusion💃
Compte tenu de l’augmentation actuelle des opportunités d’emploi dans le domaine du Big Data et de Hadoop, il pourrait être intéressant pour vous d’améliorer vos chances de vous y faire une place. Les questions et réponses d’entretien Hadoop présentées dans cet article vous aideront à réussir votre prochain entretien.
Par la suite, vous pourrez consulter d’excellentes ressources pour approfondir vos connaissances en Big Data et Hadoop.
Bonne chance ! 👍