Installation des prérequis de compilation
Pour compiler Hadoop 3 sur CentOS 7, installez d'abord les bibliothèques et outils nécessaires. Exécutez les commandes suivantes via le gestionnaire de paquets :
# Ajout des paquets de base
yum -y install libXtst zlib-devel openssl-devel ncurses-devel autoconf automake libtool curl gcc gcc-c++ make
# Paquets de compression
yum -y install snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop
# Vérification de cmake (version 3.6+ requise)
yum -y install cmake
cmake --version
Si la version de cmake dans les dépôts est trop ancienne, compilez-la manuellement :
# Suppression de l'ancienne version
yum remove cmake -y
# Extraction et compilation de cmake 3.13.5
tar -xvf cmake-3.13.5.tar.gz -C /opt/
cd /opt/cmake-3.13.5
./configure --prefix=/usr/local
make && make install
hash -r # Recharger le PATH
/usr/local/bin/cmake --version
Compilation de la bibliothèque Snappy
Pour un support Snappy optimisé, compilez-le à partir des sources :
# Nettoyage des anciennes installations
rm -f /usr/local/lib/libsnappy*
# Extraction et compilation
tar -xvf snappy-1.1.3.tar.gz -C /tmp/
cd /tmp/snappy-1.1.3
./configure --with-pic
make -j4 && make install
# Vérification des fichiers générés
ls -l /usr/local/lib/libsnappy*
Préparation de l'environnement de build
Instalation de Java JDK 8
# Décompression du JDK
tar -xvf jdk-8u65-linux-x64.tar.gz -C /opt/
# Configuration des variables d'environnement
cat > /etc/profile.d/java.sh << 'EOF'
export JAVA_HOME=/opt/jdk1.8.0_65
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
EOF
source /etc/profile.d/java.sh
javac -version
Configuration de Maven
# Installation de Maven
tar -xvf apache-maven-3.5.4-bin.tar.gz -C /opt/
# Création du fichier de configuration
cat > /etc/profile.d/maven.sh << 'EOF'
export M2_HOME=/opt/apache-maven-3.5.4
export MAVEN_OPTS="-Xmx4g"
export PATH=$M2_HOME/bin:$PATH
EOF
source /etc/profile.d/maven.sh
mvn --version
# Ajout d'un dépôt miroir pour accélérer les téléchargements
mkdir -p ~/.m2
cat > ~/.m2/settings.xml << 'EOF'
<settings>
<mirrors>
<mirror>
<id>aliyun-repo</id>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
EOF
Installation de Protocol Buffers 2.5.0
# Compilation de protobuf
tar -xvf protobuf-2.5.0.tar.gz -C /tmp/
cd /tmp/protobuf-2.5.0
./configure --prefix=/usr/local
make -j$(nproc) && make install
ldconfig # Mettre à jour les liens de bibliothèques
# Vérification
protoc --version
Compilation du code source Hadoop
Une fois tous les prérequis installés, compilez Hadoop :
# Extraction des sources
tar -xvf hadoop-3.1.4-src.tar.gz -C /opt/
cd /opt/hadoop-3.1.4-src
# Lancement de la compilation avec Maven
mvn clean package -Pdist,native -DskipTests -Dtar \
-Dbundle.snappy -Dsnappy.lib=/usr/local/lib \
-Dmaven.javadoc.skip=true
# Les artefacts compilés se trouvent dans :
ls -l /opt/hadoop-3.1.4-src/hadoop-dist/target/