Build#02Dim’s.Build

Installer Hadoop sur MacBook puce silicone (M1 ou M2)

8 min lecture

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

  1. Vérifier et installer JDK Java
  2. Activer le SSH du MacBook dans les paramètres systèmes
  3. Télécharger Hadoop via le site officiel
  4. Configurer Hadoop (variable JAVA_HOME, fichiers core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml)
  5. Formater le HDFS NameNode
  6. Démarrer les services Hadoop
  7. 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.

· Dim’s.Build

La newsletter qui ne perd pas ton temps.

Trois fois par mois. SaaS, Flutter, IA, build in public.

Dim’s.Build · mardi matin · ~7 min de lecture

Une lettre par semaine, sur ce que je construis et ce que j’apprends.

40% valeur · 30% build in public · 20% storytelling · 10% offres. Écrite à la main, jamais générée. Tu peux te désabonner en un clic.

Rejoins la newsletter · taux d'ouverture 62%