0% ont trouvé ce document utile (0 vote)
97 vues83 pages

Guide d'installation de Hadoop et Docker

Transféré par

Felix Gannandje
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
97 vues83 pages

Guide d'installation de Hadoop et Docker

Transféré par

Felix Gannandje
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Hadoop

MapReduce &
Apache Sqoop
Automne 2024
Hamza Takrouni
[Link]@[Link]
• Le formatage du fichier peut entraîner la présentation docker run -d \
de commandes sur plusieurs lignes, ce qui peut
parfois causer des erreurs d'exécution. Afin de --name nom_conteneur \
résoudre ce problème, il est crucial d'adapter les
commandes en utilisant le caractère de barre oblique -p 80:80 \
inverse (\) pour indiquer que la commande continue
sur la ligne suivante dans Linux. Pour Windows, ubuntu
l'accent circonflexe (^) est utilisé à la place.

• D'autre part, il est tout aussi important de supprimer docker run -d ^


les barres obliques et les accents circonflexes inutiles --name nom_conteneur ^
dans les commandes, afin d'éviter toute confusion et
de garantir une exécution sans erreur. -p 80:80 ^
ubuntu

2
Docker
• Docker est une plateforme open-source qui permet de créer, de déployer et de gérer des
applications dans des conteneurs. Les conteneurs sont des unités légères et portables qui
peuvent être exécutées sur n'importe quel système compatible avec Docker, offrant ainsi
une grande flexibilité et portabilité aux applications.

• Conteneurs
• Un conteneur est une unité logicielle légère qui encapsule une application et ses dépendances.
• Les conteneurs sont portables et peuvent fonctionner sur n'importe quel système compatible avec
Docker, qu'il s'agisse d'un ordinateur portable, d'un serveur ou même dans le cloud.
• Ils isolent les applications les unes des autres, garantissant qu'elles fonctionnent de manière
cohérente dans différents environnements.

• Isolation : Les conteneurs offrent une isolation des applications, assurant qu'elles ne se
interfèrent pas mutuellement.
• Portabilité : Les conteneurs peuvent être exécutés sur n'importe quel système compatible
avec Docker, garantissant une portabilité totale des applications. Source : Docker vs Virtual Machines (VMs) A Practical Guide to
• Facilité de déploiement : Docker simplifie le déploiement d'applications en éliminant les Docker Containers and VMs
problèmes de compatibilité et en assurant que l'application fonctionne de la même manière
partout.
• Flexibilité : Docker permet d'utiliser différentes technologies, langages de programmation,
bases de données, etc., dans un même environnement.

3
Installation de Docker
• Docker Desktop
• [Link]
• Installation (étapes): [Link]

4
Installation de Docker
• Lancement : Test

5
Installation de Docker
• Lancement : Test

6
Installation de Docker
• Lancement : Test

7
Apache Sqoop
• Apache Sqoop est un outil conçu pour transférer
efficacement des données en masse entre Apache Hadoop
et les sources de données externes telles que des bases de
données relationnelles, des entrepôts de données
d'entreprise.

• Le transfert de données entre les systèmes de bases de


données relationnelles et HDFS est fastidieux. Les
développeurs peuvent toujours écrire des scripts
personnalisés pour transférer des données vers et depuis
Hadoop, mais Apache Sqoop offre une alternative.

• Sqoop automatise la majeure partie du processus.


Source : techvidvan
• Sqoop utilise le Framework MapReduce pour importer et
exporter les données, qui fournit un mécanisme parallèle ainsi
qu'une tolérance aux pannes.
• Les développeurs doivent simplement fournir des informations
de base telles que les détails d'authentification de la source, de
la destination et de la base de données dans la commande
Sqoop et Sqoop s'occupe de la partie restante.

8
Apache Sqoop
• Un flux de travail typique du Big Data avec Hadoop et
Sqoop consiste à envoyer les données vers Hive par
exemple afin que les tâches de traitement et de
transformation puissent être effectuées sur Apache
Hadoop.

• Une fois le traitement terminé, les données peuvent


être réexportées vers la base de données.

• Hadoop est utilisé à des fins ETL dans ce cas.

• Lors d'une importation Sqoop, chaque tâche de


mappage se voit attribuer une partie des données à
importer.

• Sqoop distribue les données uniformément entre les


taches pour garantir des performances élevées. Source : educba

9
Hadoop Streaming (hadoop-
[Link])
• Un fichier avec l'extension de fichier .JAR est un
fichier d'archive Java utilisé pour stocker des
programmes Java dans un seul fichier.

• Certains contiennent des fichiers qui les font


fonctionner comme des applications autonomes et
d'autres contiennent des bibliothèques de
programmes que d'autres programmes peuvent
utiliser.
• Contient les classes d'une application Java, ainsi que
toutes les ressources utilisées.

• Hadoop streaming est une bibliothèque Hadoop


qui permet d'utiliser n'importe quel programme
comme un programme MapReduce.
• Il existe de nombreux programmeurs non-java qui ont
besoin d’effectuer des traitements sur les
mégadonnées.

10
Infrastructure
1 2

basenode
Ubuntu

basenode

master slaveone slavetwo


11
Infrastructure
Maitre

master

demonetwork
slaveone
slavetwo

Esclave Esclave
12
Création des conteneurs
• Création d’un pont réseau dans Docker.

13
Création des conteneurs
• Création d’une image/nœud contenant les configurations de
base pour un cluster Hadoop.

14
Création des conteneurs
• Création d’une image/nœud contenant les configurations de
base pour un cluster Hadoop.

• Image docker
• Les images Docker sont des modèles de conteneurs qui contiennent
l'application et ses dépendances. Elles sont utilisées pour créer des
conteneurs.

15
Création des conteneurs
• apt update

• Création d’une • apt install openjdk-8-jdk

image/nœud
• apt install ssh

• apt install pdsh

contenant les •


apt install wget

apt install nano

configurations de •


wget -P ~ [Link]

tar xzf /root/[Link]

base pour un • mv hadoop-3.3.4 hadoop

• nano hadoop/etc/hadoop/[Link]

cluster Hadoop. •
• export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

mv hadoop /usr/local/hadoop

• nano /etc/environment
• :/usr/local/hadoop/bin:/usr/local/hadoop/sbin
• JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre"

• adduser userdemo
• nano /etc/hosts
• usermod -aG userdemo userdemo
• [Link] master
• chown userdemo:root -R /usr/local/hadoop/
• [Link] slaveone
• chmod g+rwx -R /usr/local/hadoop/
• [Link] slavetwo
• adduser userdemo sudo

16
Création des conteneurs
• nano /usr/local/hadoop/etc/hadoop/[Link]
• Création d’une • <property>
• <name>[Link]</name>

image/nœud •
• <value>hdfs://master:9000</value>
</property>

contenant les • nano /usr/local/hadoop/etc/hadoop/[Link]


• <property>

configurations de
• <name>[Link]</name>
• <value>/usr/local/hadoop/data/nameNode</value>
• </property>

base pour un • <property>


• <name>[Link]</name>

cluster Hadoop.
• <value>/usr/local/hadoop/data/dataNode</value>
• </property>
• <property>
• <name>[Link]</name>
• <value>2</value>
• </property>
• <property>
• <name>[Link]</name>
• <value>true</value>
• </property>

• nano /usr/local/hadoop/etc/hadoop/workers
• slaveone
• slavetwo
17
Création des conteneurs
• Création d’une image/nœud contenant les configurations de base pour un cluster
Hadoop.

• Configurer MapReduce
• Ajouter la configuration dans le fichier « [Link] » et sauvegarder.
• Nous devons configurer la variable [Link] qui spécifie l' hôte et le port de JobTracker (MapReduce
maitre).

• nano /usr/local/hadoop/etc/hadoop/[Link]

<configuration>
<property>
<name>[Link]</name>
<value>master:9001</value>
</property>
</configuration>

18
Création des conteneurs
• Configurer MapReduce
• Le fichier de configuration [Link] est un fichier de
configuration spécifique à Hadoop. Il est utilisé pour définir divers
paramètres de configuration pour le système MapReduce d'Hadoop.
Ce fichier se trouve généralement dans le répertoire de configuration
d'Hadoop sur le système de fichiers de chaque nœud du cluster
Hadoop.
• La propriété [Link] était utilisée dans les versions antérieures
d'Hadoop pour spécifier l'adresse du JobTracker dans un cluster MapReduce.

19
Création des conteneurs
• Création d’une image/nœud contenant les configurations de
base pour un cluster Hadoop.

• Configurer MapReduce

20
Création des conteneurs
• Création d’une image/nœud contenant les configurations de
base pour un cluster Hadoop.

• Configurer MapReduce

21
Création des conteneurs
• Création d’une image/nœud contenant les configurations de
base pour un cluster Hadoop.
• Sauvegarder le conteneur comme une image.

22
Création des conteneurs
• Création d’une image/nœud contenant les configurations de
base pour un cluster Hadoop.
• Sauvegarder le conteneur comme une image.

23
Création du cluster Hadoop
• Création du cluster Hadoop à partir de l’image « basenode »
• Maitre

24
Création du cluster Hadoop
• Création du cluster Hadoop à partir de l’image « basenode »
• Les deux esclaves

25
Création du cluster Hadoop
• Configuration du ssh
• Les deux esclaves

26
Création du cluster Hadoop
• Configuration du ssh
• Maitre

27
Création du cluster Hadoop
• Configuration du ssh
• Maitre

28
Démarrage de Hadoop
• Dans le nœud :
• Maitre

29
Démarrage de Hadoop

30
Exemple MapReduce
• Calcul du nombre d’occurrences
• Dans le nœud :
• Maitre
• Création des répertoires.

• hdfs dfs -mkdir /user


• hdfs dfs -mkdir /user/userdemo
• hdfs dfs -mkdir /user/userdemo/demo1
• hdfs dfs -mkdir /user/userdemo/demo1/input
• hdfs dfs -mkdir /user/userdemo/demo1/output

31
Exemple MapReduce
• Calcul du nombre d’occurrences
• Dans le nœud :
• Maitre
• Création des répertoires.

32
Exemple MapReduce
• Calcul du nombre d’occurrences
• Dans le nœud :
• Maitre

• Création d’un fichier texte incluant les


données.
• echo " toronto gatineau ottawa
montreal toronto toronto toronto
toronto toronto gatineau gatineau
gatineau gatineau gatineau gatineau
gatineau gatineau ottawa ottawa
ottawa ottawa gatineau toronto toronto
toronto " >> demo1fichier

33
Exemple MapReduce
• Calcul du nombre
d’occurrences
• Dans le nœud :
• Maitre

• Copier le fichier dans le


répertoire « demo1/input »

• hdfs dfs -copyFromLocal


demo1fichier
/user/userdemo/demo1/input

34
Exemple MapReduce
• Calcul du nombre d’occurrences
• Dans le nœud :
• Maitre

• Exécuter le programme MapReduce en utilisant l’exemple fourni dans


l’installation de Hadoop.

• hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-


[Link] wordcount
/user/userdemo/demo1/input/demo1fichier
/user/userdemo/demo1/output/demo1output

35
Exemple MapReduce
• [Link]
• Un fichier JAR (Java Archive) est un package Java qui contient des classes
Java, des métadonnées et des ressources. Il est utilisé pour distribuer des
applications Java.

• [Link] est le fichier JAR qui contient les


classes Java nécessaires pour exécuter divers exemples de MapReduce
inclus avec Hadoop.

• wordcount est le nom de la classe principale dans le fichier JAR hadoop-


[Link].
• Dans Hadoop, l'exemple WordCount est une application MapReduce simple qui
compte le nombre d'occurrences de chaque mot dans un ensemble de fichiers texte.

36
Exemple MapReduce
• Calcul du nombre d’occurrences
• Dans le nœud :
• Maitre

• Exécuter le programme MapReduce


en utilisant l’exemple fourni dans
l’installation de Hadoop.

• hadoop jar
/usr/local/hadoop/share/hadoop/mapre
duce/hadoop-mapreduce-examples-
[Link] wordcount
/user/userdemo/demo1/input/demo1fic
hier
/user/userdemo/demo1/output/demo1
output

37
Exemple MapReduce
• Calcul du nombre d’occurrences
• Dans le nœud :
• Maitre

• Exécuter le programme MapReduce


en utilisant l’exemple fourni dans
l’installation de Hadoop.

• hadoop jar
/usr/local/hadoop/share/hadoop/mapre
duce/hadoop-mapreduce-examples-
[Link] wordcount
/user/userdemo/demo1/input/demo1fic
hier
/user/userdemo/demo1/output/demo1
output

38
Exemple MapReduce
• Calcul du nombre
d’occurrences
• Dans le nœud :
• Maitre

• Exécuter le
programme
MapReduce en
utilisant l’exemple
fourni dans
l’installation de
Hadoop.

39
Installation et configuration d’Apache
Sqoop
• Dans le nœud :
• Maitre

• wget
[Link]
g/dist/sqoop/1.4.7/sqoop-
[Link]
• tar -xvf [Link]

40
Installation et configuration d’Apache
Sqoop
• Dans le nœud :
• Maitre

• mv sqoop-1.4.7 /usr/lib/sqoop
• cd /usr/lib/sqoop/conf
• mv [Link] [Link]

41
Installation et configuration d’Apache
Sqoop
• [Link]
• C’est un modèle de fichier de configuration utilisé dans Apache Sqoop.

• Il contient des variables d'environnement et des paramètres de configuration à personnaliser en fonction de


l’environnement spécifique.

• Les utilisateurs peuvent copier ce modèle et le personnaliser en fonction desbesoins en renommant le fichier en
[Link].

• export HADOOP_MAPRED_HOME=/usr/local/hadoop
• export HADOOP_COMMON_HOME=/usr/local/hadoop

• HADOOP_MAPRED_HOME et HADOOP_COMMON_HOME spécifient les chemins vers les composants


MapReduce et Common d'Hadoop respectivement.

• Ces variables d'environnement indiquent à Sqoop où trouver les bibliothèques et les fichiers nécessaires pour
interagir avec Hadoop.

42
Installation et configuration d’Apache
Sqoop
• Dans le nœud :
• Maitre

• nano [Link]
• export
HADOOP_MAPRED_HOME=/usr/l
ocal/hadoop
• export
HADOOP_COMMON_HOME=/usr/l
ocal/hadoop

43
Installation et configuration d’Apache
Sqoop
• Dans le nœud :
• Maitre

• cd /usr/lib/sqoop/
• wget [Link]
[Link]/n
exus/content/reposit
ories/libraries/org/ap
ache/sqoop/sqoop/1
.4.7/[Link]

44
Installation et configuration d’Apache
Sqoop
• wget [Link]
[Link]/nexus/content/repositories/libraries/org/apache/s
qoop/sqoop/1.4.7/[Link]

• [Link] est un fichier JAR (Java Archive) qui contient les


classes et les ressources nécessaires pour exécuter Sqoop version
1.4.7.

• Le fichier [Link] peut être présent dans le répertoire de


Sqoop une fois l'archive extraite sinon il faut l’ajouter.

45
Installation et configuration d’Apache
Sqoop
• Dans le nœud :
• Maitre

• export
SQOOP_HOME=/usr/lib/sqoop
• export
PATH=$PATH:$SQOOP_HOME
/bin
• sqoop version

46
Installation et configuration d’Apache
Sqoop
• Dans le nœud (configuration):
• Maitre

• cd /usr/lib/sqoop/lib
• apt install links

47
Installation et configuration d’Apache
Sqoop
• Dans le nœud (configuration):
• Maitre

• links [Link]

48
Installation et configuration d’Apache
Sqoop
• Dans le nœud (configuration):
• Maitre

• links [Link]
• Taper « q » pour quitter

49
Installation et configuration d’Apache
Sqoop
• Dans le nœud (configuration):
• Maitre

• tar -xvf sqljdbc_11.2.0.0_enu.[Link]


• rm -r sqljdbc_11.2.0.0_enu.[Link]

50
Installation et configuration d’Apache
Sqoop
• Dans le nœud (configuration):
• Maitre

• cd sqljdbc_11.2/enu/
• mv [Link] [Link] mssql-jdbc-
[Link] [Link] /usr/lib/sqoop/lib/

51
Installation et configuration d’Apache
Sqoop
• Dans le nœud (configuration):
• Maitre

• cd ../../
• rm -r sqljdbc_11.2

52
Installation et configuration d’Apache
Sqoop
• Dans le nœud (configuration):
• Maitre

• links [Link]
• links [Link]
lang/2.6/

53
Installation et configuration d’Apache
Sqoop
• Dans le nœud
(configuration):
• Maitre

• links
[Link]
maven2/org/apache/avro/
avro/1.8.2/
• links
[Link]
maven2/commons-
lang/commons-lang/2.6/
54
Installation et configuration d’Apache
Sqoop
• Dans le nœud
(configuration):
• Maitre

• links
[Link]
maven2/org/apache/avro/
avro/1.8.2/
• links
[Link]
maven2/commons-
lang/commons-lang/2.6/
55
Installation et configuration d’Apache
Sqoop
• Dans le nœud
(configuration):
• Maitre

• links
[Link]
maven2/org/apache/avro/
avro/1.8.2/
• links
[Link]
maven2/commons-
lang/commons-lang/2.6/
56
Installation et configuration d’Apache
Sqoop
• avro/avro/1.8.2/ : La bibliothèque Apache Avro version 1.8.2. Avro est un
framework de sérialisation de données qui est souvent utilisé dans le
contexte du traitement de données et du stockage de données.

• commons-lang/commons-lang/2.6/ : La bibliothèque Apache Commons


Lang version 2.6. est une bibliothèque qui fournit de nombreuses classes
utilitaires pour la manipulation de chaînes, d'objets et d'autres tâches
courantes en Java.

• sqljdbc_11.2 : Pilote JDBC pour Microsoft SQL Server, qui permet de


connecter une application Java à une base de données SQL Server.
57
Installation et configuration d’Apache
Sqoop
• Dans le nœud
(configuration):
• Maitre

• mkdir classdir
• chown userdemo:root -
R /usr/lib/sqoop/
• chmod g+rwx -R
/usr/lib/sqoop/
• su – userdemo
• cd /usr/lib/sqoop/lib

58
SQOOP importation des données
• Importation des données de SQL Server vers HDFS avec SQOOP
• SQL Server (configuration):

59
SQOOP importation des données
• Importation des données de SQL Server vers HDFS avec SQOOP
• SQL Server (configuration):

60
SQOOP importation des données
• Importation des données de SQL Server vers HDFS avec SQOOP
• SQL Server (configuration):

61
SQOOP importation des données
• Importation des données de SQL Server vers HDFS avec SQOOP
• SQL Server (configuration):

62
SQOOP importation des données
• sqoop list-tables --connect
• La commande Sqoop indique à Sqoop de lister les tables de la base de
données spécifiée.

• --connect : Cela spécifie l'URL de connexion JDBC à la base de


données SQL Server.

• --username demo -P: Cela spécifie le nom d'utilisateur (demo) pour se


connecter à la base de données. L'option -P indique à Sqoop de
demander le mot de passe lors de l'exécution de la commande.

63
SQOOP importation des données
• Importation des données de SQL Server
vers HDFS avec SQOOP
• Dans le nœud (exécution):
• Maitre

• Afficher la liste des tables dans la bd


« NorthwindDW »
• export SQOOP_HOME=/usr/lib/sqoop
• export
PATH=$PATH:$SQOOP_HOME/bin
• sqoop list-tables \
--connect
'jdbc:sqlserver://[Link]:1433;datab
ase=NorthwindDW' --username demo -P

64
SQOOP importation des données
• Importation des données de SQL Server vers
HDFS avec SQOOP
• Dans le nœud (exécution):
• Maitre

sqoop codegen -[Link]=true \


--connect 'jdbc:sqlserver://[Link]:1433;database=NorthwindDW' --
username demo -P \
--query "select [Link], [Link],
[Link], [Link], [Link],
[Link], [Link] from FactOrderDetails
inner join DimProduct on [Link] =
[Link] inner join DimAddress on
[Link] = [Link]
inner join DimDate on [Link] =
[Link] where \$CONDITIONS" \
--bindir /usr/lib/sqoop/lib/classdir

65
SQOOP importation des données
• sqoop codegen
• Commande Sqoop utilisée pour générer des classes Java basées sur le résultat de la requête SQL spécifiée.

• sqoop codegen : Cela indique à Sqoop de générer du code Java basé sur le résultat de la requête SQL.

• [Link]=true : Cette option est utilisée pour influencer la manière dont les classes
et les dépendances sont chargées lors de l'exécution des travaux MapReduce dans un cluster Hadoop.
• Plus précisément, cela signifie que les classes définies par l'utilisateur (comme celles générées par Sqoop) auront la priorité
sur les classes système lors de l'exécution des travaux MapReduce.

• --query : Spécifie la requête SQL à exécuter

• L'option \$CONDITIONS est utilisée par Sqoop pour diviser la requête et effectuer une importation parallèle des
données.

• --bindir : Spécifie le répertoire de sortie où les classes Java générées seront stockées.

• Cette commande générera des classes Java basées sur le schéma de résultat de la requête SQL, et ces classes
peuvent ensuite être utilisées dans des applications Java pour traiter les données extraites de la base de données
SQL Server.
66
SQOOP importation des données
• Importation des données de SQL Server vers HDFS avec
SQOOP
• Dans le nœud (exécution):
• Maitre

sqoop import -[Link]=true -


[Link].allow_text_splitter=true -libjars
/usr/lib/sqoop/lib/classdir/[Link] \
--connect
'jdbc:sqlserver://[Link]:1433;database=NorthwindDW' --
username demo -P \
--query "select [Link],
[Link], [Link],
[Link], [Link], [Link],
[Link] from FactOrderDetails inner
join DimProduct on [Link] =
[Link] inner join DimAddress on
[Link] =
[Link] inner join DimDate on
[Link] = [Link] where
\$CONDITIONS" \
--bindir /usr/lib/sqoop/lib/classdir --target-dir northwinddw --
split-by ProductName

67
SQOOP importation des données
• Importation des données de SQL Server vers HDFS avec
SQOOP
• Dans le nœud (exécution):
• Maitre

sqoop import -[Link]=true -


[Link].allow_text_splitter=true -libjars
/usr/lib/sqoop/lib/classdir/[Link] \
--connect
'jdbc:sqlserver://[Link]:1433;database=NorthwindDW' --
username demo -P \
--query "select [Link],
[Link], [Link],
[Link], [Link], [Link],
[Link] from FactOrderDetails inner
join DimProduct on [Link] =
[Link] inner join DimAddress on
[Link] =
[Link] inner join DimDate on
[Link] = [Link] where
\$CONDITIONS" \
--bindir /usr/lib/sqoop/lib/classdir --target-dir northwinddw --
split-by ProductName

68
SQOOP importation des données
• sqoop import
• Importe des données depuis SQL Server vers Hadoop.

• -[Link].allow_text_splitter=true : Cette option spécifie


d'autoriser l'utilisation du séparateur de texte pour les colonnes de type texte lors de
la division des données.

• -libjars /usr/lib/sqoop/lib/classdir/[Link] : Spécifie un fichier JAR externe


qui contient des classes personnalisées nécessaires pour l'importation des données.

• --target-dir : Spécifie le répertoire de destination dans Hadoop où les données


extraites seront stockées.

• --split-by : Indique à Sqoop de diviser les données en utilisant la colonne


ProductName pour garantir une répartition efficace des données entre les tâches
MapReduce.
69
SQOOP importation des données
• Importation des données de SQL
Server vers HDFS avec SQOOP
• Dans le nœud (résultat):
• Maitre

70
Exemple MapReduce
• Calcul du total de la quantité de produits vendus dans l’entrepôt
NorthwindDW.
• Dans le nœud :
• Maitre
• Création des répertoires.

• hdfs dfs -mkdir /user


• hdfs dfs -mkdir /user/userdemo
• hdfs dfs -mkdir /user/userdemo/demo2
• hdfs dfs -mkdir /user/userdemo/demo2/output

71
Exemple MapReduce
• Calcul du total de la quantité de produits vendus dans l’entrepôt
NorthwindDW.
• Dans le nœud :
• Maitre
• Création des répertoires.

72
Exemple MapReduce
• Calcul du total de la
quantité de produits vendus
dans l’entrepôt
NorthwindDW.
• Dans le nœud :
• Maitre

• Création d’un fichier


« [Link] ».

73
Exemple MapReduce
• Calcul du total de la
quantité de produits
vendus dans l’entrepôt
NorthwindDW.
• Dans le nœud :
• Maitre

• Création d’un fichier


« [Link] ».

74
Exemple MapReduce
• Calcul du total de la
quantité de produits vendus
dans l’entrepôt
NorthwindDW.
• Dans le nœud :
• Maitre

• Création d’un fichier


« [Link] ».

75
Exemple MapReduce
• Calcul du total de la
quantité de produits
vendus dans l’entrepôt
NorthwindDW.
• Dans le nœud :
• Maitre

• Création d’un fichier


« [Link] ».

76
Exemple MapReduce
• Calcul du total de la quantité de produits vendus dans l’entrepôt
NorthwindDW.
• Dans le nœud :
• Maitre
• Exécuter le programme MapReduce

hadoop jar /usr/local/hadoop/share/hadoop/tools/lib/[Link] \


-file /home/userdemo/[Link] -mapper /home/userdemo/[Link] \
-file /home/userdemo/[Link] -reducer /home/userdemo/[Link] \
-input /user/userdemo/northwinddw/* -output
/user/userdemo/demo2/output/demo2output

77
Exemple MapReduce
• hadoop jar /usr/local/hadoop/share/hadoop/tools/lib/[Link] \
-file /home/userdemo/[Link] -mapper /home/userdemo/[Link] \
-file /home/userdemo/[Link] -reducer /home/userdemo/[Link] \
-input /user/userdemo/northwinddw/* -output\
/user/userdemo/demo2/output/demo2output

• Cette commande Hadoop exécute un travail MapReduce en utilisant les scripts Python [Link] et [Link]
pour effectuer des opérations de map et de reduce respectivement. Les données sont lues à partir du répertoire
d'entrée spécifié et les résultats sont écrits dans le répertoire de sortie spécifié.

• hadoop jar : Indique à Hadoop d'utiliser l'outil de streaming pour exécuter un travail MapReduce.

• -file …. -mapper …. : Spécifie le fichier et la commande qui seront utilisés comme tâche de map. Le fichier
[Link] est envoyé à tous les nœuds du cluster et la commande spécifiée est utilisée pour exécuter la tâche de
map.

• -file …. -reducer …. : Spécifie le fichier et la commande qui seront utilisés comme tâche de reduce. Le fichier
[Link] est envoyé à tous les nœuds du cluster et la commande spécifiée est utilisée pour exécuter la tâche de
reduce.

78
Exemple MapReduce
• Calcul du total de la
quantité de produits
vendus dans l’entrepôt
NorthwindDW.
• Dans le nœud :
• Maitre
• Exécuter le programme
MapReduce

79
Exemple MapReduce
• Calcul du total de la
quantité de produits
vendus dans l’entrepôt
NorthwindDW.
• Dans le nœud :
• Maitre
• Résultats

80
Exemple MapReduce
• Calcul du total de la
quantité de produits
vendus dans l’entrepôt
NorthwindDW.
• Dans le nœud :
• Maitre
• Résultats

81
Exemple MapReduce
• Calcul du
total de la
quantité de
produits
vendus
dans
l’entrepôt
NorthwindD
W.
• Dans le
nœud :
• Maitre
• Résultats
82
Références

• Big Data with Hadoop MapReduce A Classroom Approach , 2020, par Rathinaraja Jeyaraj,
Ganeshkumar Pugalendhi et Anand Paul.
• Hadoop Real-World Solutions Cookbook - Second Edition, 2016, par Tanmay Deshpande.
• Field Guide to Hadoop: An Introduction to Hadoop, Its Ecosystem, and Aligned Technologies, 2015,
par Kevin Sitto et Marshall Presser.
• Apache Hadoop, [Link]
• Ubuntu, [Link]
• VirtualBox, [Link]

83

Vous aimerez peut-être aussi