Hadoop - Configuration de l'environnement

Hadoop est pris en charge par la plate-forme GNU / Linux et ses versions. Par conséquent, nous devons installer un système d'exploitation Linux pour configurer l'environnement Hadoop. Si vous disposez d'un système d'exploitation autre que Linux, vous pouvez y installer un logiciel Virtualbox et disposer de Linux dans Virtualbox.

Configuration avant l'installation

Avant d'installer Hadoop dans l'environnement Linux, nous devons configurer Linux en utilisant ssh(Enveloppe de protection). Suivez les étapes ci-dessous pour configurer l'environnement Linux.

Créer un utilisateur

Au début, il est recommandé de créer un utilisateur distinct pour Hadoop afin d'isoler le système de fichiers Hadoop du système de fichiers Unix. Suivez les étapes ci-dessous pour créer un utilisateur -

  • Ouvrez la racine en utilisant la commande «su».

  • Créez un utilisateur à partir du compte root en utilisant la commande «useradd username».

  • Vous pouvez maintenant ouvrir un compte utilisateur existant en utilisant la commande «su username».

Ouvrez le terminal Linux et tapez les commandes suivantes pour créer un utilisateur.

$ su 
   password: 
# useradd hadoop 
# passwd hadoop 
   New passwd: 
   Retype new passwd

Configuration SSH et génération de clé

La configuration SSH est requise pour effectuer différentes opérations sur un cluster telles que le démarrage, l'arrêt, les opérations de shell démon distribuées. Pour authentifier différents utilisateurs de Hadoop, il est nécessaire de fournir une paire de clés publique / privée pour un utilisateur Hadoop et de la partager avec différents utilisateurs.

Les commandes suivantes sont utilisées pour générer une paire clé / valeur à l'aide de SSH. Copiez le formulaire de clés publiques id_rsa.pub dans allowed_keys et accordez au propriétaire des autorisations de lecture et d'écriture sur le fichier authorised_keys respectivement.

$ ssh-keygen -t rsa 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
$ chmod 0600 ~/.ssh/authorized_keys

Installer Java

Java est le prérequis principal pour Hadoop. Tout d'abord, vous devez vérifier l'existence de java dans votre système en utilisant la commande «java -version». La syntaxe de la commande java version est donnée ci-dessous.

$ java -version

Si tout est en ordre, il vous donnera la sortie suivante.

java version "1.7.0_71" 
Java(TM) SE Runtime Environment (build 1.7.0_71-b13) 
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

Si java n'est pas installé sur votre système, suivez les étapes ci-dessous pour installer java.

Étape 1

Téléchargez java (JDK <dernière version> - X64.tar.gz) en visitant le lien suivant www.oracle.com

ensuite jdk-7u71-linux-x64.tar.gz sera téléchargé dans votre système.

Étape 2

En général, vous trouverez le fichier java téléchargé dans le dossier Téléchargements. Vérifiez-le et extrayez lejdk-7u71-linux-x64.gz fichier à l'aide des commandes suivantes.

$ cd Downloads/ 
$ ls 
jdk-7u71-linux-x64.gz 

$ tar zxf jdk-7u71-linux-x64.gz 
$ ls 
jdk1.7.0_71   jdk-7u71-linux-x64.gz

Étape 3

Pour rendre java disponible à tous les utilisateurs, vous devez le déplacer vers l'emplacement «/ usr / local /». Ouvrez root et saisissez les commandes suivantes.

$ su 
password: 
# mv jdk1.7.0_71 /usr/local/ 
# exit

Étape 4

Pour la mise en place PATH et JAVA_HOME variables, ajoutez les commandes suivantes à ~/.bashrc fichier.

export JAVA_HOME=/usr/local/jdk1.7.0_71 
export PATH=$PATH:$JAVA_HOME/bin

Appliquez maintenant toutes les modifications dans le système en cours d'exécution.

$ source ~/.bashrc

Étape 5

Utilisez les commandes suivantes pour configurer les alternatives Java -

# alternatives --install /usr/bin/java java usr/local/java/bin/java 2
# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2

# alternatives --set java usr/local/java/bin/java
# alternatives --set javac usr/local/java/bin/javac
# alternatives --set jar usr/local/java/bin/jar

Vérifiez maintenant la commande java -version à partir du terminal comme expliqué ci-dessus.

Téléchargement de Hadoop

Téléchargez et extrayez Hadoop 2.4.1 de la fondation logicielle Apache à l'aide des commandes suivantes.

$ su 
password: 
# cd /usr/local 
# wget http://apache.claz.org/hadoop/common/hadoop-2.4.1/ 
hadoop-2.4.1.tar.gz 
# tar xzf hadoop-2.4.1.tar.gz 
# mv hadoop-2.4.1/* to hadoop/ 
# exit

Modes de fonctionnement Hadoop

Une fois que vous avez téléchargé Hadoop, vous pouvez utiliser votre cluster Hadoop dans l'un des trois modes pris en charge -

  • Local/Standalone Mode - Après avoir téléchargé Hadoop dans votre système, par défaut, il est configuré en mode autonome et peut être exécuté en tant que processus Java unique.

  • Pseudo Distributed Mode- C'est une simulation distribuée sur une seule machine. Chaque démon Hadoop tel que hdfs, yarn, MapReduce, etc., fonctionnera comme un processus Java distinct. Ce mode est utile pour le développement.

  • Fully Distributed Mode- Ce mode est entièrement distribué avec au moins deux machines ou plus en tant que cluster. Nous découvrirons ce mode en détail dans les prochains chapitres.

Installation de Hadoop en mode autonome

Ici, nous allons discuter de l'installation de Hadoop 2.4.1 en mode autonome.

Il n'y a pas de démons en cours d'exécution et tout s'exécute dans une seule JVM. Le mode autonome convient à l'exécution des programmes MapReduce pendant le développement, car il est facile de les tester et de les déboguer.

Configurer Hadoop

Vous pouvez définir des variables d'environnement Hadoop en ajoutant les commandes suivantes à ~/.bashrc fichier.

export HADOOP_HOME=/usr/local/hadoop

Avant de continuer, vous devez vous assurer que Hadoop fonctionne correctement. Émettez simplement la commande suivante -

$ hadoop version

Si tout va bien avec votre configuration, vous devriez voir le résultat suivant -

Hadoop 2.4.1 
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 
Compiled by hortonmu on 2013-10-07T06:28Z 
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4

Cela signifie que la configuration du mode autonome de votre Hadoop fonctionne correctement. Par défaut, Hadoop est configuré pour s'exécuter en mode non distribué sur une seule machine.

Exemple

Vérifions un exemple simple de Hadoop. L'installation de Hadoop fournit l'exemple de fichier jar MapReduce suivant, qui fournit des fonctionnalités de base de MapReduce et peut être utilisé pour calculer, comme la valeur Pi, le nombre de mots dans une liste de fichiers donnée, etc.

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar

Disons avoir un répertoire d'entrée où nous allons pousser quelques fichiers et notre exigence est de compter le nombre total de mots dans ces fichiers. Pour calculer le nombre total de mots, nous n'avons pas besoin d'écrire notre MapReduce, à condition que le fichier .jar contienne l'implémentation du nombre de mots. Vous pouvez essayer d'autres exemples en utilisant le même fichier .jar; émettez simplement les commandes suivantes pour vérifier les programmes fonctionnels de MapReduce pris en charge par le fichier hadoop-mapreduce-examples-2.2.0.jar.

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar

Étape 1

Créez des fichiers de contenu temporaires dans le répertoire d'entrée. Vous pouvez créer ce répertoire d'entrée partout où vous souhaitez travailler.

$ mkdir input 
$ cp $HADOOP_HOME/*.txt input 
$ ls -l input

Il donnera les fichiers suivants dans votre répertoire d'entrée -

total 24 
-rw-r--r-- 1 root root 15164 Feb 21 10:14 LICENSE.txt 
-rw-r--r-- 1 root root   101 Feb 21 10:14 NOTICE.txt
-rw-r--r-- 1 root root  1366 Feb 21 10:14 README.txt

Ces fichiers ont été copiés à partir du répertoire d'accueil de l'installation de Hadoop. Pour votre expérience, vous pouvez avoir des ensembles de fichiers différents et volumineux.

Étape 2

Commençons le processus Hadoop pour compter le nombre total de mots dans tous les fichiers disponibles dans le répertoire d'entrée, comme suit -

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar  wordcount input output

Étape 3

L'étape 2 effectuera le traitement requis et enregistrera la sortie dans le fichier output / part-r00000, que vous pouvez vérifier en utilisant -

$cat output/*

Il listera tous les mots avec leurs nombres totaux disponibles dans tous les fichiers disponibles dans le répertoire d'entrée.

"AS      4 
"Contribution" 1 
"Contributor" 1 
"Derivative 1
"Legal 1
"License"      1
"License");     1 
"Licensor"      1
"NOTICE”        1 
"Not      1 
"Object"        1 
"Source”        1 
"Work”    1 
"You"     1 
"Your")   1 
"[]"      1 
"control"       1 
"printed        1 
"submitted"     1 
(50%)     1 
(BIS),    1 
(C)       1 
(Don't)   1 
(ECCN)    1 
(INCLUDING      2 
(INCLUDING,     2 
.............

Installation de Hadoop en mode pseudo distribué

Suivez les étapes ci-dessous pour installer Hadoop 2.4.1 en mode pseudo distribué.

Étape 1 - Configuration de Hadoop

Vous pouvez définir des variables d'environnement Hadoop en ajoutant les commandes suivantes à ~/.bashrc fichier.

export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 

export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 
export HADOOP_INSTALL=$HADOOP_HOME

Appliquez maintenant toutes les modifications dans le système en cours d'exécution.

$ source ~/.bashrc

Étape 2 - Configuration Hadoop

Vous pouvez trouver tous les fichiers de configuration Hadoop à l'emplacement «$ HADOOP_HOME / etc / hadoop». Il est nécessaire d'apporter des modifications à ces fichiers de configuration en fonction de votre infrastructure Hadoop.

$ cd $HADOOP_HOME/etc/hadoop

Afin de développer des programmes Hadoop en java, vous devez réinitialiser les variables d'environnement java dans hadoop-env.sh fichier en remplaçant JAVA_HOME value avec l'emplacement de java dans votre système.

export JAVA_HOME=/usr/local/jdk1.7.0_71

Voici la liste des fichiers que vous devez modifier pour configurer Hadoop.

core-site.xml

le core-site.xml fichier contient des informations telles que le numéro de port utilisé pour l'instance Hadoop, la mémoire allouée au système de fichiers, la limite de mémoire pour stocker les données et la taille des tampons de lecture / écriture.

Ouvrez le fichier core-site.xml et ajoutez les propriétés suivantes entre les balises <configuration>, </configuration>.

<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value> 
   </property>
</configuration>

hdfs-site.xml

le hdfs-site.xmlfichier contient des informations telles que la valeur des données de réplication, le chemin du namenode et les chemins du datanode de vos systèmes de fichiers locaux. Cela signifie l'endroit où vous souhaitez stocker l'infrastructure Hadoop.

Supposons les données suivantes.

dfs.replication (data replication value) = 1 

(In the below given path /hadoop/ is the user name. 
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.) 
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode 

(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.) 
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode

Ouvrez ce fichier et ajoutez les propriétés suivantes entre les balises <configuration> </configuration> de ce fichier.

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
    
   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
   </property>
    
   <property>
      <name>dfs.data.dir</name> 
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value> 
   </property>
</configuration>

Note - Dans le fichier ci-dessus, toutes les valeurs de propriété sont définies par l'utilisateur et vous pouvez apporter des modifications en fonction de votre infrastructure Hadoop.

yarn-site.xml

Ce fichier est utilisé pour configurer le fil dans Hadoop. Ouvrez le fichier yarn-site.xml et ajoutez les propriétés suivantes entre les balises <configuration>, </configuration> de ce fichier.

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value> 
   </property>
</configuration>

mapred-site.xml

Ce fichier est utilisé pour spécifier le framework MapReduce que nous utilisons. Par défaut, Hadoop contient un modèle de yarn-site.xml. Tout d'abord, il est nécessaire de copier le fichier à partir demapred-site.xml.template à mapred-site.xml fichier à l'aide de la commande suivante.

$ cp mapred-site.xml.template mapred-site.xml

Ouvert mapred-site.xml et ajoutez les propriétés suivantes entre les balises <configuration>, </configuration> dans ce fichier.

<configuration>
   <property> 
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

Vérification de l'installation de Hadoop

Les étapes suivantes sont utilisées pour vérifier l'installation de Hadoop.

Étape 1 - Configuration du nœud de nom

Configurez le namenode en utilisant la commande «hdfs namenode -format» comme suit.

$ cd ~ 
$ hdfs namenode -format

Le résultat attendu est le suivant.

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG:   host = localhost/192.168.1.11 
STARTUP_MSG:   args = [-format] 
STARTUP_MSG:   version = 2.4.1 
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory 
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted. 
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to 
retain 1 images with txid >= 0 
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0 
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11 
************************************************************/

Étape 2 - Vérification des fichiers DFS Hadoop

La commande suivante est utilisée pour démarrer dfs. L'exécution de cette commande démarrera votre système de fichiers Hadoop.

$ start-dfs.sh

Le résultat attendu est le suivant -

10/24/14 21:37:56 
Starting namenodes on [localhost] 
localhost: starting namenode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-namenode-localhost.out 
localhost: starting datanode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-datanode-localhost.out 
Starting secondary namenodes [0.0.0.0]

Étape 3 - Vérification du script de fil

La commande suivante est utilisée pour démarrer le script de fil. L'exécution de cette commande démarrera vos démons yarn.

$ start-yarn.sh

La production attendue comme suit -

starting yarn daemons 
starting resourcemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out 
localhost: starting nodemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out

Étape 4 - Accéder à Hadoop sur le navigateur

Le numéro de port par défaut pour accéder à Hadoop est 50070. Utilisez l'url suivante pour obtenir les services Hadoop sur le navigateur.

http://localhost:50070/

Étape 5 - Vérifier toutes les applications pour le cluster

Le numéro de port par défaut pour accéder à toutes les applications du cluster est 8088. Utilisez l'url suivante pour visiter ce service.

http://localhost:8088/