Installer Hadoop sur MacBook puce silicone (M1 ou M2)
Dans cet article, je vais vous montrer comment installer Hadoop sur votre MacBook M1 ou M2.
Veuillez confirmer que votre MacBook répond aux spécifications suivantes :
- Un MacBook M1 ou M2 (puce silicone) avec macOS Ventura 13.2.1 ou supérieur
- 8 Go de RAM minimum
Les étapes d'installation
- Vérifier et installer JDK Java
- Activer le SSH du MacBook dans les paramètres systèmes
- Télécharger Hadoop via le site officiel
- Configurer Hadoop (variable
JAVA_HOME, fichierscore-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml) - Formater le HDFS NameNode
- Démarrer les services Hadoop
- Utiliser l'interface utilisateur Hadoop
Prérequis : un terminal et un éditeur de texte ou de code (VS Code, Sublime Text, Xcode, IntelliJ IDEA).
Étape 1 : Vérifier et installer JDK Java
Exécutez la commande suivante pour vérifier si Java est installé :
java -version
Si Java n'est pas installé, téléchargez Java SE Development Kit 8 ou 11 depuis le site officiel Oracle. La version 11 est recommandée pour Hadoop.
Si vous avez une version incompatible (JDK 17, 19, 20...), supprimez-la :
cd /Library/Java/JavaVirtualMachines && ls
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-19.1.jdk
Vérifiez de nouveau après l'installation :
java -version
Étape 2 : Activer le SSH du MacBook
Recherchez Partage dans Spotlight, puis activez Session à distance et accordez l'accès aux utilisateurs distants à l'ensemble du disque.
Générez ensuite une paire de clés RSA SSH :
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
Ajoutez la clé publique au fichier authorized_keys :
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Sécurisez les autorisations :
chmod 0600 ~/.ssh/id_rsa.pub
Testez la connexion SSH à localhost :
ssh localhost
Vous devriez voir un message du type Dernière connexion : Mardi 12 Septembre…. SSH fonctionne. Fermez la connexion avec Ctrl + D.
Étape 3 : Télécharger Hadoop
Rendez-vous sur le site officiel Apache et téléchargez le fichier .tar.gz de la dernière version stable de Hadoop.
Décompressez l'archive le dossier s'appellera hadoop-<version>. Déplacez-le dans votre répertoire personnel (~).
Étape 4 : Configurer Hadoop
Variables d'environnement
Trouvez d'abord le chemin de votre JDK :
/usr/libexec/java_home
cd /Library/Java/JavaVirtualMachines/jdk-11.jdk && pwd
Copiez le chemin affiché, puis ouvrez votre fichier .zprofile ou .zshrc :
nano ~/.zprofile
Ajoutez les lignes suivantes (remplacez dimitri par votre nom d'utilisateur, trouvable avec cd ~ && pwd) :
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home"
export HADOOP_HOME=/Users/dimitri/hadoop-3.3.6/
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
hadoop-env.sh
Ouvrez le fichier de configuration de l'environnement Hadoop :
nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
Trouvez la ligne commentée contenant JAVA_HOME (environ ligne 54) et décommentez-la en ajoutant votre chemin :
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home"
core-site.xml
nano $HADOOP_HOME/etc/hadoop/core-site.xml
Entre les balises <configuration> et </configuration>, ajoutez (remplacez dimitri) :
<property>
<name>hadoop.tmp.dir</name>
<value>/Users/dimitri/hdfs/tmp/</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
hdfs-site.xml
nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.data.dir</name>
<value>/Users/dimitri/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/Users/dimitri/hdfs/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
mapred-site.xml
nano $HADOOP_HOME/etc/hadoop/mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
nano $HADOOP_HOME/etc/hadoop/yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>127.0.0.1</value>
</property>
<property>
<name>yarn.acl.enable</name>
<value>0</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
Étape 5 : Formater le HDFS NameNode
hdfs namenode -format
Si cette commande renvoie une erreur parce que Hadoop tourne déjà, arrêtez-le d'abord avec stop-all.sh, puis relancez.
Étape 6 : Démarrer les services Hadoop
start-all.sh
Vérifiez que tous les démons sont bien lancés :
jps
Vous devriez voir : NameNode, DataNode, ResourceManager, NodeManager et leurs IDs de processus.
Étape 7 : Interface utilisateur Hadoop
Ouvrez votre navigateur et accédez à :
http://localhost:9870
Vous pouvez surveiller l'état de votre cluster HDFS depuis cette interface.
Pour arrêter Hadoop :
stop-all.sh
Félicitations Hadoop tourne sur votre MacBook M1/M2. Vous pouvez maintenant exploiter la puissance de la puce silicone pour le traitement et l'analyse de données.