Comment installer Hadoop en mode autonome sur Debian 9

introduction

Hadoop est un framework de programmation basé sur Java qui prend en charge le traitement et le stockage de jeux de données extrêmement volumineux sur un cluster de machines peu coûteuses. C’était le premier grand projet open source sur le marché des Big Data et est sponsorisé par Apache Software Foundation.

Hadoop est composé de quatre couches principales:

  • * Hadoop Common * est la collection d’utilitaires et de bibliothèques prenant en charge d’autres modules Hadoop.

  • * HDFS *, qui signifie Hadoop Distributed File System, est responsable de la persistance des données sur le disque.

  • * YARN *, abréviation de Yet Another Resource Negotiator, est le «système d’exploitation» de HDFS.

  • * MapReduce * est le modèle de traitement d’origine des clusters Hadoop. Il distribue le travail au sein du cluster ou de la carte, puis organise et réduit les résultats des nœuds en une réponse à une requête. De nombreux autres modèles de traitement sont disponibles pour la version 3.x de Hadoop.

Les clusters Hadoop étant relativement complexes à configurer, le projet inclut un mode autonome qui convient à l’apprentissage de Hadoop, à l’exécution d’opérations simples et au débogage.

Dans ce didacticiel, vous allez installer Hadoop en mode autonome et exécuter l’un des exemples de programmes MapReduce qu’il inclut pour vérifier l’installation.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

Étape 1 - Installation de Hadoop

Pour installer Hadoop, commencez par visiter la page Apache Hadoop Releases pour trouver la version stable la plus récente.

Accédez à * binary * pour la version que vous souhaitez installer. Dans ce guide, nous allons installer Hadoop 3.0.3.

image: https: //assets.digitalocean.com/articles/hadoop-standalone-1804/hadoop-download-link.png [Capture d’écran de la page des versions de Hadoop mettant en évidence le lien vers le dernier binaire stable]

Sur la page suivante, cliquez avec le bouton droit de la souris et copiez le lien dans le fichier binaire de la version.

image: https: //assets.digitalocean.com/articles/hadoop-standalone-1804/hadoop-binary-link.png [Capture d’écran de la page miroir Hadoop]

Sur votre serveur, utilisez + wget + pour le récupérer:

wget http:///dist/hadoop/common/hadoop-/hadoop-.tar.gz

Pour vous assurer que le fichier que vous avez téléchargé n’a pas été modifié, effectuez une vérification rapide à l’aide de SHA-256. Revenez à la page releases, puis cliquez avec le bouton droit de la souris et copiez le lien dans le fichier de contrôle pour le binaire de version que vous avez téléchargé:

image: https: //assets.digitalocean.com/articles/hadoop-standalone-1804/hadoop-checksum-link.png [Capture d’écran mettant en évidence le fichier .mds]

Encore une fois, utilisez + wget + sur votre serveur pour télécharger le fichier:

wget https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-/hadoop-.tar.gz.mds

Puis lancez la vérification:

sha256sum hadoop-.tar.gz
Outputdb96e2c0d0d5352d8984892dfac4e27c0e682d98a497b7e04ee97c3e2019277a  hadoop-.tar.gz

Comparez cette valeur avec la valeur SHA-256 du fichier + .mds +:

cat hadoop-.tar.gz.mds | grep SHA256

~ / hadoop-3.0.3.tar.gz.mds

...
SHA256 = DB96E2C0 D0D5352D 8984892D FAC4E27C 0E682D98 A497B7E0 4EE97C3E 2019277A

Vous pouvez en toute sécurité ignorer la différence entre les cas et les espaces. Le résultat de la commande que vous avez exécutée sur le fichier que nous avons téléchargé à partir du miroir doit correspondre à la valeur du fichier que vous avez téléchargé à partir d’apache.org.

Maintenant que vous avez vérifié que le fichier n’a pas été corrompu ou modifié, utilisez la commande + tar + avec l’indicateur + -x + pour l’extraire, + -z + pour décompresser, + -v + pour une sortie détaillée , et + -f + pour spécifier que vous extrayez l’archive d’un fichier. Utilisez la tabulation ou remplacez le numéro de version correct dans la commande ci-dessous:

tar -xzvf hadoop-.tar.gz

Enfin, déplacez les fichiers extraits dans + / usr / local +, le lieu approprié pour les logiciels installés localement. Modifiez le numéro de version, si nécessaire, pour qu’il corresponde à la version que vous avez téléchargée.

sudo mv hadoop- /usr/local/hadoop

Avec le logiciel en place, nous sommes prêts à configurer son environnement.

Étape 2 - Lancer Hadoop

Assurez-vous que Hadoop fonctionne. Exécutez la commande suivante pour lancer Hadoop et afficher ses options d’aide:

/usr/local/hadoop/bin/hadoop

Vous verrez la sortie suivante, qui vous indique que vous avez correctement configuré Hadoop pour fonctionner en mode autonome.

OutputUsage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
or    hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]
 where CLASSNAME is a user-provided Java class

 OPTIONS is none or any of:

--config dir                     Hadoop config directory
--debug                          turn on shell script debug mode
--help                           usage information
buildpaths                       attempt to add class files from build tree
hostnames list[,of,host,names]   hosts to use in slave mode
hosts filename                   list of hosts to use in slave mode
loglevel level                   set the log4j level for this command
workers                          turn on worker mode

 SUBCOMMAND is one of:
. . .

Nous allons nous assurer qu’il fonctionne correctement en exécutant l’exemple de programme MapReduce avec lequel il est livré. Pour ce faire, créez un répertoire appelé + input dans votre répertoire personnel et copiez-y les fichiers de configuration Hadoop afin de les utiliser comme données.

mkdir ~/input
cp /usr/local/hadoop/etc/hadoop/*.xml ~/input

Ensuite, nous allons exécuter le programme MapReduce + hadoop-mapreduce-examples +, une archive Java avec plusieurs options. Nous invoquerons son programme + grep +, un des nombreux exemples inclus dans + hadoop-mapreduce-examples +, suivi du répertoire d’entrée, + input + et du répertoire de sortie + grep_example +. Le programme MapReduce grep comptera les correspondances d’un mot littéral ou d’une expression régulière. Enfin, nous fournirons l’expression régulière + allowed [.] * + Pour rechercher les occurrences du mot + allowed + dans ou à la fin d’une phrase déclarative. L’expression est sensible à la casse, nous ne trouverions donc pas le mot s’il était en majuscule au début d’une phrase.

Exécutez la commande suivante:

/usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-.jar grep ~/input ~/grep_example 'allowed[.]*'

Une fois la tâche terminée, elle fournit un résumé de ce qui a été traité et des erreurs qu’elle a rencontrées, mais cela ne contient pas les résultats réels:

Output . . .
       File System Counters
       FILE: Number of bytes read=1330690
       FILE: Number of bytes written=3128841
       FILE: Number of read operations=0
       FILE: Number of large read operations=0
       FILE: Number of write operations=0
   Map-Reduce Framework
       Map input records=2
       Map output records=2
       Map output bytes=33
       Map output materialized bytes=43
       Input split bytes=115
       Combine input records=0
       Combine output records=0
       Reduce input groups=2
       Reduce shuffle bytes=43
       Reduce input records=2
       Reduce output records=2
       Spilled Records=4
       Shuffled Maps =1
       Failed Shuffles=0
       Merged Map outputs=1
       GC time elapsed (ms)=3
       Total committed heap usage (bytes)=478150656
   Shuffle Errors
       BAD_ID=0
       CONNECTION=0
       IO_ERROR=0
       WRONG_LENGTH=0
       WRONG_MAP=0
       WRONG_REDUCE=0
   File Input Format Counters
       Bytes Read=147
   File Output Format Counters
       Bytes Written=34

Les résultats sont stockés dans le répertoire + ~ / grep_example +.

Si ce répertoire de sortie existe déjà, le programme échouera et plutôt que de voir le résumé, vous verrez quelque chose comme ceci:

Output . . .
   at java.base/java.lang.reflect.Method.invoke(Method.java:564)
   at org.apache.hadoop.util.RunJar.run(RunJar.java:244)
   at org.apache.hadoop.util.RunJar.main(RunJar.java:158)

Vérifiez les résultats en exécutant + cat + sur le répertoire de sortie:

cat ~/grep_example/*

Vous verrez cette sortie:

Output19  allowed.
1   allowed

La tâche MapReduce a détecté 19 occurrences du mot + allowed + suivies d’une période et d’une occurrence où il n’en était rien. L’exécution du programme exemple a permis de vérifier que notre installation autonome fonctionnait correctement et que les utilisateurs non privilégiés du système pouvaient exécuter Hadoop à des fins d’exploration ou de débogage.

Conclusion

Dans ce didacticiel, nous avons installé Hadoop en mode autonome et l’avons vérifié en exécutant un exemple de programme fourni. Pour apprendre à écrire vos propres programmes MapReduce, visitez le site https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html à travers le code derrière l’exemple que vous avez utilisé dans ce tutoriel. Lorsque vous êtes prêt à configurer un cluster, consultez le guide Hadoop Cluster Setup pour Apache Foundation.