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 :
yum -y update yum -y install wget openssh openssh-clients nmap
Installation du JDK (trouvez le dernier tar.gz dispo sur Oracle au besoin) :
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.
cat >> ~/.bashrc << "EOF" # ------------------------- export JAVA_HOME=/opt/jdk PATH=$PATH:$JAVA_HOME/bin EOF [/shell] Tester l'utilité de ce passage : [shell] setenforce 0 vi /etc/sysconfig/selinux SELINUX=disabled [/shell] Ajout de l'utilisateur Hadoop : [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 [/shell] On se connecte en tant qu'hadoop et l'on créé une paire de clef : [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/) :
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) :
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 [/shell] Si le nom de votre serveur n'est pas résolu par les DNS ajoutez le à votre fichier hosts [shell] Ajouter le nom de la machine pour le DNS vi /etc/hosts [/shell] Configuration de Hadoop : [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
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
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
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 :
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 :
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 :
hdfs namenode -format
Démarrer les processus :
start-dfs.sh start-yarn.sh
Vérifier si tous les processus sont bien lancés :
jps 1508 Jps 1468 SecondaryNameNode 1199 NameNode 1317 DataNode 1456 ResourceManager 1578 NodeManager
Lancer un exemple de calcul de pi:
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 :
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