Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

Installation et configuration du cluster Hadoop 2.7 sur CentOS 7 part1

Publié le par Marius LOWE

Apache Hadoop est une construction de framework Open Source pour le stockage et le traitement de données Big Data distribués à travers des clusters d'ordinateurs.

 Le projet est basé sur les composants suivants:

 

¢     Hadoop Common : il contient les bibliothèques Java et les utilitaires nécessaires à d'autres modules Hadoop.

 

¢     HDFS : Hadoop Distributed File System - Un système de fichiers évolutif basé sur Java réparti sur plusieurs nœuds.

 

¢     MapReduce : YARN cadre pour le gros traitement de données parallèle.

 

¢     Hadoop YARN : un cadre pour la gestion des ressources en cluster.
 
Informations du cluster :
                                                    Hadoop namenode: 192.168.3.207  ( NameNode )
                                                    Hadoop datanode :  192.168.3. 34 ( DataNode1 )
                                                    Hadoop datanode :  192.168.3.51  ( DataNode2 )
Étape 1. installer java sur le NameNode

Hadoop nécessite Java comme pré-requis.  Nous utiliserons jdk 8.

          * telechager sur le site oracle jdk 8

          * transferer à l’aide de winscp  dans le repertoire /usr/lib/jvm

          * executer la commande en tant que root:  rpm -Uvh jdk-8u131-linux-x64.rpm

 

Étape 2. Configurer l'alias de la machine 192.168.3.207 dans le fichier hôte

 

Ensuite, nous devons modifier le fichier hôte pour mettre l'alias du nom de l'ordinateur. Il faut juste editer le fichier hosts avec editeur VI à travers la commande:

               *  vi /etc/hosts

Une fois le fichier ouvert, ajouter :  192.168.3.207 NameNode à la fin du fichier, enregistrer et fermer.

 

Étape 3. Configurer le serveur SSH

 

Pour fonctionner de manière transparente, SSH doit être configuré pour permettre une connexion  sans mot de passe pour l'utilisateur root / hadoop à partir des machines du cluster. La façon la plus simple d'y parvenir est de générer une paire de clés public / privé, et elle sera partagée sur le cluster.

Nous  allons Générer une clé SSH pour l'utilisateur root ave cette commande:

 

                                 ssh-keygen -t rsa -P “ “

 

Nous executerons ensuite la commande  suivante qui nous permettra  de faire entrer le fichier dans lequel enregistrer la clé en octroyant des droits :

 

             cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys

             chmod 700 ~/.ssh

             chmod 600 ~/.ssh/authorized_keys

 

Ensuite se Connecter et valider  la connexion sans mot de passe ssh à localhost. Avec

La  commande :    ssh localhost

 

 Si vous êtes invité à accepter la connexion, sélectionnez oui

 

Étape 4. Télécharger et installer la distribution Hadoop

 

   apres avoir telechargé hadoop 2.7.2 sur le site d’Apache et transferer dans le repertoire /usr/local via winscp. Nous allons l'installer dans ce  / usr / local /  Après cela, nous créerons également quelques répertoires supplémentaires comme NameNode pour hadoop pour stocker toutes les informations de NameNode et les sections secondaires pour stocker les images de point de contrôle.

Dans un premier temps nous nous deplacerons dans ce repertoire avec la commande :

 

                                       cd  /usr/local

 

 ensuite utiliserons cette commande pour installer hadoop 2.7.2 :

 

                                       tar -xzvf hadoop-2.7.2.tar.gz

 

Et enfin nous allons créer 2 répertoires à partir des commandes:

 

                                        mkdir –p /usr/local/hadoop_work/hdfs/namenode

                                        mkdir -p /usr/local/hadoop_work/hdfs/namesecondary

 

Étape 5. Configuration Variables d'environnement

 

 

Nous allons configurer certaines variables d'environnement dans .bashrc afin que chaque fois que nous redémarrons nos machines, il sait où trouver l'emplacement d'installation Java ou Hadoop à l'intérieur de la machine. Pour ce faire, dans le cas d’espece il se trouve dans le repertoire 

 

                                      / usr / lib / jvm / jdk1.8.0_131

 

Nous allons nous deplacer dans le repertoire : /usr/lib/jvm/jdk1.8.0_131/jre pour editer le fichier  .bashrc  avec la commande :  cd /usr/lib/jvm/jdk1.8.0_131/jre

 

Une fois dans ce répertoire nous éditons le fichier .bashrc avec cette commande:

                                        vi ~/.bashrc

Le fichier etant ouvert ajoutons  à la fin du fichier les configurations suivantes:

 

 

 export JAVA_HOME= /usr/lib/jvm/jdk1.8.0_131/jre

 export PATH=$PATH:$JAVA_HOME/bin

 export HADOOP_HOME=/usr/local/hadoop

 export PATH=$PATH:$HADOOP_HOME/bin

 export PATH=$PATH:$HADOOP_HOME/sbin

 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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

export CLASSPATH=$CLASSPATH:/usr/local/hadoop/lib/*:.

export HADOOP_OPTS="$HADOOP_OPTS -Djava.security.egd=file:/dev/../dev/urandom"

 

Dans ce fichier de configuration nous avons juste configuré les variables de java et de hadoop sans lesquelles nous ne pourrions executer les commandes hadoop. Il ne nous reste qu’enregistrez le fichier .bashrc et la source en tapant la commande ci-dessous:  source ~/.bashrc

 

Étape 6. Configuration JAVA_HOME sous hadoop environment

 

Pour cela, nous allons editer le fichier hadoop-end.sh Avec cette commande:

              vi   /usr/local/hadoop/etc/hadoop/hadoop-env.sh

 

Une fois Dans le fichier, recherchez la ligne JAVA_HOME = $ {JAVA_HOME}. Remplacez la avec : export JAVA_HOME= /usr/lib/jvm/jdk1.8.0_131/jre Enregistrer et fermer l’editeur.

Étape 7. Configuration du NameNode

 

Hadoop utilise un fichier de configuration basé sur XML dont il lit tous les paramètres d'exécution. Ces fichiers de configuration sont situés sous le repertoire /usr/local/hadoop/etc/. Nous allons configurer et définir des options minimales juste pour faire démarrer sur le cluster Hadoop. Dans cette configuration, nous utiliserons YARN comme cadre de gestion de cluster.

 

Configure core-site.xml

 

Ce fichier de configuration XML nous permet de configurer des propriétés spécifiques au site, telles que les paramètres d'E / S communs à HDFS et MapReduce. Editons  le fichier avec la commande : vi core-site.xml

et ensuite écrire les propriétés suivantes entre la balise configuration:

 

<property>

<name>fs.defaultFS</name>

<value>hdfs://NameNode:8020/</value>

</property>

 <property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

 

 

Configure core-site.xml

 

Ce fichier de configuration XML nous permet de configurer des propriétés spécifiques au site, telles que les paramètres d' E/S communs à HDFS et MapReduce. Editons  le fichier avec la commande : vi core-site.xml

et ensuite écrire les propriétés suivantes entre la balise configuration:

 

<property>

<name>fs.defaultFS</name>

<value>hdfs://NameNode:8020/</value>

</property>

 <property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

 

Configurez hdfs-site.xml

 

Nous dirons à hadoop où se trouve le nom du répertoire de noeud (que nous avons créé précédemment à la fin de l'installation de Hadoop) et le nombre de copies de sauvegarde des fichiers de données à créer dans le système le tout  sous la balise de configuration du fichier hdfs-site.xml que nous allons éditer avec la commande :  vi hdfs-site.xml.

 

<property>

 <name>dfs.namenode.name.dir</name>

<value>file:/usr/local/hadoop_work/hdfs/namenode</value>

 </property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/usr/local/hadoop_work/hdfs/datanode</value>

</property>

<property>

 <name>dfs.namenode.checkpoint.dir</name>

<value>file:/usr/local/hadoop_work/hdfs/namesecondary</value>

 </property>

<property>

 <name>dfs.replication</name>

<value>2</value>

 </property>

<property>

<name>dfs.block.size</name>

<value>134217728</value>

</property>

 

 

Configurer mapred-site.xml

 

Cela contrôle les paramètres de configuration des démons MapReduce. Nous devons nous assurer que nous utiliserons le cadre YARN. Nous allons également configurer le serveur MapReduce Job History. Nous allons tout d’abord  Copiez le fichier modèle mapred-site.xml.template dans le fichier mapred-site.xml avec la commande : cp  mapred-site.xml.template mapred-site.xmlEnsuite editer le fichier avec cette commnde:  vi mapred-site.xml Une fois le fichier ouvert inserons entre la balise configuration les lignes suivantes:

 

<property>

<name>mapreduce.framework.name</name>

 <value>yarn</value>

</property>

<property>

 <name>mapreduce.jobhistory.address</name>

 <value>NameNode:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>NameNode:19888</value>

</property>

<property>

 <name>yarn.app.mapreduce.am.staging-dir</name>

<value>/user/app</value>

</property>

<property>

<name>mapred.child.java.opts</name>

<value>-Djava.security.egd=file:/dev/../dev/urandom</value>

</property>

 

 

 

Configure yarn-site.xml

 

Ce fichier de configuration XML nous permet de configurer les propriétés spécifiques au site YARN pour Resource Manager & Node Manager. Ouvrons le fichier  yarn-site.xml avec la commande :

                                                vi yarn-site.xml

Et inserons entre la balise configuration les lignes de la page suivante: 

<property>

 <name>yarn.resourcemanager.hostname</name>

<value>NameNode</value>

 </property>

<property>

 <name>yarn.resourcemanager.bind-host</name>

 <value>0.0.0.0</value>

</property>

<property>

 <name>yarn.nodemanager.bind-host</name>

<value>0.0.0.0</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.log-aggregation-enable</name>

<value>true</value>

</property>

 <property>

 <name>yarn.nodemanager.local-dirs</name>

<value>file:/usr/local/hadoop_work/yarn/local</value>

 </property>

<property>

 <name>yarn.nodemanager.log-dirs</name>

<value>file:/usr/local/hadoop_work/yarn/log</value>

</property>

<property>

<name>yarn.nodemanager.remote-app-log-dir</name>

<value>hdfs://NameNode:8020/var/log/hadoop-yarn/apps</value>

</property>

 

Étape 8.Configurer le maître

 

Maintenant, nous devons indiquer à Hadoop NameNode le nom d'hôte du nom du nœud secondaire. Dans notre cas, NameNode & secondary NameNode réside sur la même machine. Nous le faisons en éditant le fichier du maitre avec la commande : vi masters ecrivons cette ligne une fois dans le fichier : NameNode Ensuite, nous formaterons le NameNode en tapant cette commande :

 

                      /usr/local/hadoop/bin/hadoop namenode -format

 

Étape 9.Création des nœuds de données(DataNodes)

 

Notre cluster hadoop sera composé de 2 datanodes disposant de Centos 7 de part et d’autres avec les caractéristiques suivantes;

 

                            Nom d’hote: DataNode1

                            adresse ip : 192.168.3.34

                            Ram: 6 GB

 

                            Nom d’hote: DataNode2

                            adresse ip : 192.168.3.51

                            Ram: 6 GB

 

Étape 10.Ajout des noeuds de données en Master

 

L’ Ajout consiste a informer le maître de ces nouveaux noeuds de données, pour ce faire nous allons éditer le fichier slaves avec la commande : vi slaves

 

Une fois dans ce fichier nous devons insérer les données relatives aux deux datanodes pour que le maitre puisse prendre connaissant d’eux nous saisissons donc ceci dans le fichier :

 

                                        DataNode1

                                        DataNode2

 

 et ajoutons également ces noms d'hôtes du nœud principal en éditant le fichier /etc/hosts avec cette commande : vi /etc/hosts  et ajoutons les entrées suivantes:

 

 

                             192.68.3.34 DataNode1

                             192.168.3.51 DataNode2

 

Étape 11. Configuration des DataNodes

 

 

Installation de JAVA dans les DataNodes

 

Apres avoir téléchargé jdk8 sur le site d’oracle nous transférons le jdk dans le répertoire /usr/lib/jvm de nos datanodes via winscp et nous procéderons à son installation avec cette commande :

                                  rpm -Uvh jdk-8u131-linux-x64.rpm

 

Mise à jour du fichier / etc / hosts

 

Nous ouvrirons le fichier / etc / hosts et inserons à la fin du fichier les donnees

ci-dessous:

                  192.168.3.207   NameNode

                  192.168.3.34     DataNode1

                  192.168.3.51     DataNode2

 

Configuration variable d'environnement

 

Pour configurer nos variables d’environnement nous allons editer le fichier .bashrc avec la commande :

                                                        vi ~/.bashrc

Ensuite, ajoutez les lignes suivantes à la fin du fichier :

export JAVA_HOME=/usr/lib/jvm/jdk-8u131-linux-x64/jre

export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

export CLASSPATH=$CLASSPATH:/usr/local/hadoop/lib/*:.

 

export HADOOP_OPTS="$HADOOP_OPTS -Djava.security.egd=file:/dev/../dev/urandom"

 

 

 
 

Étape 12 Installation de Hadoop

 

Cette fois, nous n'installerons pas Hadoop comme nous l'avons installé sur le  NameNode. Au lieu de cela, nous allons simplement copier les répertoires d'installation du NameNode vers les DataNodes. Pour que nous puissions le copier, nous devrons d'abord inclure la clé publique de NameNode sur les clés autorisées de tous les nœuds de données(DataNodes) afin que nous puissions exploiter le programme de copie de fichier SSH (scp) pour la copie.

Connectons-nous au NameNode et copions le contenu de la clé publique sur notre bloc note, pour le faire tapons la commande : cat ~/.ssh/id_rsa.pub

Une fois que nous avons copié la clé,connectons-nous aux DataNodes en editant le fichier ~/.ssh/authorized_keys et collons la clé dans le fichier de clés autorisé. Pendant la même période, nous allons creer également des répertoires de datanode et de yarn dans chaque datanodes avec les commandes suivantes:

                                 mkdir -p /usr/local/hadoop_work/hdfs/datanode

                                 mkdir -p /usr/local/hadoop_work/yarn/local

                                 mkdir -p /usr/local/hadoop_work/yarn/log

Ils seront utilisés par les Démons de gestion de node(NodeManager Daemons)& DataNode .

Connectons-nous et validons la connexion sans mot de passe ssh à tous les Datanodes du NameNode avec la commande:

                          ssh DataNode1

                          ssh DataNode2

Si vous êtes invité à accepter la connexion, sélectionnez yes.

 

Il est maintenant temps de copier l'installation de hadoop, c'est-à-dire les fichiers binaires ainsi que les fichiers de configuration spécifiques à notre site de NameNode aux DataNodes. Connectons-nous au NameNode et exécutez la commande :

                              cd /usr/local

                              scp -r hadoop DataNode1:/usr/local

                              scp -r hadoop DataNode2:/usr/local

 

Nous Examinons les démons exécutés dans le NameNode ainsi que le DataNodes dans le cluster Hadoop avec les commandes:

                root@NameNode:/usr/local# jps

                root@DataNode1:~# jps

                root@DataNode2:~# jps

Une fois que le Namenode & le Datanodes sont démarrés, nous allons créer quelques répertoires dans le système de fichiers hadoop qui ont été répertoriés dans nos fichiers de configuration spécifiques au site avec les commandes:

-mkdir /tmp

hadoop fs -chmod -R 1777 /tmp

hadoop fs -mkdir /user

hadoop fs -chmod -R 1777 /user

hadoop fs -mkdir /user/app

hadoop fs -chmod -R 1777 /user/app

hadoop fs -mkdir -p /var/log/hadoop-yarn

hadoop fs -chmod -R 1777 /var/log/hadoop-yarn

hadoop fs -mkdir -p /var/log/hadoop-yarn/apps

hadoop fs -chmod -R 1777 /var/log/hadoop-yarn/apps

 Ces répertoires HDFS seront utilisés par YARN Map Reduce Staging, YARN Log & Job History Server.

 

 

Maintenant, nous devons demarrer le cadre du cluster YARN. Nous devrions exécuter la commande ci-dessous à partir du noeud hébergeant Resource Manager. Dans notre cas, le gestionnaire de ressources est dans le même NameNode.

                         $HADOOP_HOME/sbin/start-yarn.sh

 

Maintenant, nous allons demarrer le MapReduce History Server. Nous devrions exécuter la commande suivante à partir du noeud hébergeant le serveur historique: 

 

      $HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver

 

Dans notre cas, History Server est dans le même NameNode. Tout apres, modifions rapidement le fichier $ HADOOP_HOME / etc / hadoop / mapred-site.xml dans le NameNode. Et Remplacons le nom d'hôte de la valeur pour les noms de propriétés comme ci-dessous de NameNode à 0.0.0.0:


        Mapreduce.jobhistory.address de NameNode: 10020 à 0.0.0.0:10020.
     Mapreduce.jobhistory.webapp.address de NameNode: 19888 à 0.0.0.0:19888

 

Vérifions à nouveau les démons exécutés dans le NameNode ainsi que les DataNodes dans le cluster Hadoop avec les commandes:

 

             root@NameNode:/usr/local# jps

             root@DataNode1:~# jps

             root@DataNode2:~# jps

 

Idéalement, vous devriez voir NameNode, SecondName NameNode & ResourceManager démarré comme processus java dans NameNode; Et le processus Java DataNode & NodeManager dans les DataNodes.

 

 

Enfin, vérifions l'état du cluster dans le navigateur Web. En saissans dans l’url les adresses suivantes:

                       http://192.168.3.207:50070
                       http://192.168.3.207:8088
                       http://192.168.3.207:19888

 

Capture vue Vue d'ensemble des applications

 

Pour cela nous devons saisir dans l’url l’adresse:

http://192.168.3.207:8088

 

 

                                                  

 

 

 

Installation et configuration du cluster Hadoop 2.7 sur CentOS 7 part1
Capture Pour l'information de cluster et d'application (JobHistory)

Pour cela nous devons saisir dans l’url l’adresse:

http://192.168.3.207:19888

 

 

Installation et configuration du cluster Hadoop 2.7 sur CentOS 7 part1

je terminerai cet article ici, dans mon prochain article nous discuterons sur les fonctionnalites des differents services que compte hadoop.

Commenter cet article