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
&#91;/shell&#93;

Tester l'utilité de ce passage :
&#91;shell&#93;
setenforce 0
vi /etc/sysconfig/selinux
SELINUX=disabled
&#91;/shell&#93;

Ajout de l'utilisateur Hadoop :
&#91;shell&#93;
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&#93;

On se connecte en tant qu'hadoop et l'on créé une paire de clef :
&#91;shell&#93;
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
&#91;/shell&#93;

Si le nom de votre serveur n'est pas résolu par les DNS ajoutez le à votre fichier hosts
&#91;shell&#93;
Ajouter le nom de la machine pour le DNS
vi /etc/hosts
&#91;/shell&#93;

Configuration de Hadoop :
&#91;shell&#93;
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.

Previous
Spring – Cassandra – Firebrand ocm
Next
CentOS 6 – Cassandra

Leave a comment

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.