Centos 6 – Hadoop
DevFrançaisLinuxTutorials
Installation de Haddop 0.23.10 en single node cluster sur CentOS 6
Installation minimale d’une CentOS 6 NetInstall
Une fois installé, mettre à jour les packages et en installer d’autres :
1 2 | yum -y update yum -y install wget openssh openssh-clients nmap |
Installation du JDK (trouvez le dernier tar.gz dispo sur Oracle au besoin) :
1 2 3 4 5 | cd /opt/ wget -c https: //blog .quidquid.fr /jdk/jdk-7u51-linux-x64 . tar .gz tar zxf /opt/jdk-7u51-linux-x64 . tar .gz chown -R root:root /opt/jdk1 .7.0_51 ln -s /opt/jdk1 .7.0_51 /opt/jdk |
Ajout de java_home dans les variables d’environnement.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | cat >> ~/.bashrc << "EOF" # ------------------------- export JAVA_HOME= /opt/jdk PATH=$PATH:$JAVA_HOME /bin EOF & #91;/shell] Tester l'utilité de ce passage : & #91;shell] setenforce 0 vi /etc/sysconfig/selinux SELINUX=disabled & #91;/shell] Ajout de l'utilisateur Hadoop : & #91;shell] groupadd hadoop useradd -g hadoop hadoop passwd hadoop !hadoop! cat >> /home/hadoop/ .bashrc << "EOF" # ------------------------- export JAVA_HOME= /opt/jdk PATH=$PATH:$JAVA_HOME /bin EOF & #91;/shell] On se connecte en tant qu 'hadoop et l' on créé une paire de clef : & #91;shell] su - hadoop ssh -keygen -t rsa cat ~/. ssh /id_rsa .pub >> ~/. ssh /authorized_keys chmod 0600 ~/. ssh /authorized_keys exit |
Installation de Hadoop (téléchargez la dernière version au besoin http://wwwftp.ciril.fr/pub/apache/hadoop/common/) :
1 2 3 4 5 | cd /opt/ wget -c http: //wwwftp .ciril.fr /pub/apache/hadoop/common/hadoop-0 .23.10 /hadoop-0 .23.10. tar .gz tar -xzf /opt/hadoop-0 .23.10. tar .gz rm -f /opt/hadoop-0 .23.10. tar .gz ln -s /opt/hadoop-0 .23.10 /opt/hadoop |
Ajout des variables d’environnement pour HADOOP (toujours dans le .bashrc) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | cat >> /home/hadoop/ .bashrc << "EOF" export HADOOP_INSTALL= /opt/hadoop export HADOOP_MAPRED_HOME=$HADOOP_INSTALL export HADOOP_COMMON_HOME=$HADOOP_INSTALL export HADOOP_HDFS_HOME=$HADOOP_INSTALL export YARN_HOME=$HADOOP_INSTALL export MAPRED_HOME=$YARN_INSTALL export PATH=$PATH:$HADOOP_INSTALL /bin export PATH=$PATH:$HADOOP_INSTALL /sbin EOF & #91;/shell] Si le nom de votre serveur n'est pas résolu par les DNS ajoutez le à votre fichier hosts & #91;shell] Ajouter le nom de la machine pour le DNS vi /etc/hosts & #91;/shell] Configuration de Hadoop : & #91;shell] mv /opt/hadoop/etc/hadoop/core-site .xml /opt/hadoop/etc/hadoop/core-site .xml.bak cat > /opt/hadoop/etc/hadoop/core-site .xml << "EOF" <?xml version= "1.0" encoding= "UTF-8" ?> <?xml-stylesheet type = "text/xsl" href= "configuration.xsl" ?> <configuration> <property> <name>hadoop.tmp. dir < /name > <value> /opt/HDFS/tmp < /value > < /property > <property> <name>fs.default.name< /name > <value>hdfs: //localhost :9000< /value > < /property > < /configuration > EOF |
1 2 3 4 5 6 7 8 9 10 11 | mv /opt/hadoop/etc/hadoop/mapred-site .xml /opt/hadoop/etc/hadoop/mapred-site .xml.bak cat > /opt/hadoop/etc/hadoop/mapred-site .xml << "EOF" <?xml version= "1.0" ?> <?xml-stylesheet type = "text/xsl" href= "configuration.xsl" ?> <configuration> <property> <name>mapreduce.jobtracker.address< /name > <value> local < /value > < /property > < /configuration > EOF |
1 2 3 4 5 6 | mv /opt/hadoop/etc/hadoop/yarn-site .xml /opt/hadoop/etc/hadoop/yarn-site .xml.bak cat > /opt/hadoop/etc/hadoop/yarn-site .xml << "EOF" <?xml version= "1.0" ?> <configuration> < /configuration > EOF |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | mv /opt/hadoop/etc/hadoop/hdfs-site .xml /opt/hadoop/etc/hadoop/hdfs-site .xml.bak cat > /opt/hadoop/etc/hadoop/hdfs-site .xml << "EOF" <?xml version= "1.0" encoding= "UTF-8" ?> <?xml-stylesheet type = "text/xsl" href= "configuration.xsl" ?> <configuration> <property> <name>dfs.replication< /name > <value>1< /value > < /property > <property> <name>dfs.namenode.name. dir < /name > <value> file : /opt/HDFS/namenode < /value > < /property > <property> <name>dfs.datanode.data. dir < /name > <value> file : /opt/HDFS/datanode < /value > < /property > < /configuration > EOF |
Création des répertoires du système de fichier HDFS pour Hadoop, et positionnement des droits :
1 2 3 4 5 6 | mkdir /opt/HDFS mkdir -p /opt/HDFS/namenode mkdir -p /opt/HDFS/datanode chown -R hadoop:hadoop /opt/HDFS chown -R hadoop:hadoop /opt/hadoop chown -R hadoop:hadoop /opt/hadoop-0 .23.10 |
Se connecter en hadoop maintenant et vérifier que tout fonctionne correctement :
1 2 3 4 5 | hadoop version Hadoop 0.23.10 Subversion https: //svn .apache.org /repos/asf/hadoop/common/branches/branch-0 .23.10 /hadoop-common-project/hadoop-common -r 1547276 Compiled by tgraves on Tue Dec 3 05:45:23 UTC 2013 From source with checksum 2b0601a6bb75c9add316b598d3e1f1a6 |
Formatter le namenode :
1 | hdfs namenode - format |
Démarrer les processus :
1 2 | start-dfs.sh start-yarn.sh |
Vérifier si tous les processus sont bien lancés :
1 2 3 4 5 6 7 | jps 1508 Jps 1468 SecondaryNameNode 1199 NameNode 1317 DataNode 1456 ResourceManager 1578 NodeManager |
Lancer un exemple de calcul de pi:
1 | hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-0 .23.10.jar pi 10 100000 |
Ajoutons un script de lancement des différents starts :
1 |
cat > /etc/init.d/starthadoop << "EOF" #!/bin/bash # chkconfig: 3 21 91 # # HaddopGo # # description: Start up all the required stuff for hadoop # Source function library. . /etc/init.d/functions RETVAL=$? case "$1" in start) echo $"Starting Hadoop server" /bin/su - hadoop -c start-dfs.sh /bin/su - hadoop -c start-yarn.sh ;; stop) echo $"Stopping Hadoop server" /bin/su - hadoop -c stop-dfs.sh /bin/su - hadoop -c stop-yarn.sh ;; *) echo $"Usage: $0 {start|stop}" exit 1 ;; esac exit $RETVAL EOF chmod u+x /etc/init.d/starthadoop [/shell] Et voilà, il n reste plus qu'à créer ses propres jar et à les exécuter sur le serveur.
Leave a comment