De manière générale, vous préfèrerez installer Hadoop à partir de distributions comme celles de Cloudera ou Hortonworks… Mieux, vous utiliserez Hadoop dans le Cloud ou avec une appliance comme celles de Netapp ou d’Oracle. Ces solutions assistent la mise en oeuvre, la gestion opérationnelle et sont pasckagées pour la plupart des systèmes d’exploitation. Ce n’est pas forcément le cas de la version Apache.
Les efforts et l’expérience valent tous les longs discours, cette série d’articles vise à vous faire apprécier les bénéfices mais aussi les difficultés d’Hadoop. Nous allons donc utiliser la version Apache 2.4.1, cela vous permettra en outre de tester de nouvelles fonctionnalités si vous voulez. Comme la distribution vient avec les librairies C compilées en 32 bits, nous allons recompiler cette distribution. Cette série se base sur Oracle Linux 7 ; vous n’aurez aucune peine à l’adapter à RHEL7, CentOS7 ou même Fedora…
Installer les packages utiles
Pour compiler Hadoop, il vous plusieurs packages, bibliothèques et outils. Les 3 scripts ci-dessous listent plus de RPMs que nécessaires cette opération :
# Tools and libraries useful for Oracle yum install procps module-init-tools ethtool \ initscripts bc bind-utils nfs-utils \ util-linux-ng pam xorg-x11-utils \ xorg-x11-xauth smartmontools binutils \ compat-libstdc++-33 gcc gcc-c++ glibc \ glibc-devel ksh libaio libaio-devel \ libgcc libstdc++ libstdc++-devel make \ sysstat openssh-clients compat-libcap1 # Additional tools and libraries for Hadoop yum install lzo zlib-devel autoconf automake \ libtool openssl-devel cmake # Additional tools for me (and probably you) yum install curl zip unzip gzip bzip2 rsync git mlocate \ strace gdb perf openssh-server elinks
Installer Google Protocol Buffers
Un pré-requis important pour la recompilation d’Hadoop est l’installation de Google Protocol Buffers 2.5. Vous pouvez l’installer depuis les référentiel EPEL 7 (pour l’instant en beta). Vous pouvez également installer la distribution depuis le code source :
curl -O https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2 tar -jxvf protobuf-2.5.0.tar.bz2 cd protobuf-* ./configure make sudo make install
Note:
Lorsqu’elle est réalisée depuis le source, installation deprotobuf
est réalisée dans/usr/local/bin
. Assurez-vous que la variablePATH
est mise à jour pour recompiler Hadoop.
Installer le JDK Java SE 8
Hadoop étant pour la plus grande partie développé en Java, vous devrez également installer le JDK Java SE. Vous pouvez, par exemple, installer Java SE 8 Hotspot à partir du site Oracle ou utiliser OpenJDK [2] :
yum install jdk-8u11-linux-x64.rpm
Ajoutez les 2 lignes ci-dessous dans ~/.bashrc
ou dans un fichier profile
pour accéder à Java pendant la compilation :
export JAVA_HOME=/usr/java/jdk1.8.0_11 export PATH=$JAVA_HOME/bin:$PATH
Installer Maven
Enfin la procédure de build de Hadoop s’appuie sur Maven. Vous pouvez donc télécharger la distribution binaire à partir d’un des mirroirs du site Apache Maven :
cd /usr/local/ sudo tar -zxvf /home/hadoop/apache-maven-3.2.2-bin.tar.gz \ --transform s/apache-maven-3.2.2/apache-maven/
Ajoutez les lignes ci-dessous dans ~/.bashrc
ou dans un fichier profile
pour accéder à Maven pendant la compilation :
export M2_HOME=/usr/local/apache-maven export M2=$M2_HOME/bin export PATH=$M2:$PATH
Télécharger le source Hadoop
Le gestionnaire de configuration de Hadoop est subversion. Il est toutefois possible, celui-ci étant synchronisé avec un référentiel git de télécharger les sources à l’aide de git et de faire un checkout de la version qui vous intéresse ensuite :
git clone git://git.apache.org/hadoop-common.git cd hadoop-common git tag -l git checkout tags/release-2.4.1
Lancer le Build Hadoop
Tous les pré-requis sont normalement en place, vous pouvez lancer le « build ». La commande ci-dessous lance cette opération. Elle génère une distribution contenant les libraries C sous la forme d’un fichier .tar.gz
dans le répertoire hadoop-dist/target
:
mvn package -Dmaven.javadoc.skip=true -Pdist,native -DskipTests -Dtar
Note:
Le javadoc de Hadoop n’est pas formé correctement ; en particulier, certains caractères spéciaux, n’incluent pas les caractères d’échappement attendus. C’est la raison . pour laquelle vous devez ignorer les javadoc du « build ».
Nous voilà, prêt à installer un cluster Hadoop sur Oracle Linux 7…
Bibliographie:
Pour en savoir plus l’exécution des build Hadoop à partir du source, lisez :
[1] How to Contribute to Hadoop Common.
[2] Hadoop Wiki Java Versions Page