Installation de Spark¶
Pour la réalisation du projet RCP216, ainsi que pour travailler sur les travaux pratiques sans se servir de la plate-forme JupyterHub du Cnam, il est nécessaire de disposer d’une installation de Spark sur votre ordinateur personnel.
Note
Tous les logiciels nécessaires à la réalisation des TP sont installés et accessibles sur les machines des salles informatiques du CNAM, ainsi que sur le JpyterHub du Cnam (accessible à distance via le site du cours sur Moodle). Vous n’avez donc rien à installer sur les ordinateurs des salles de TP. Ces instructions ne concernent que l’installation de Spark et Jupyter pour votre travail en autonomie.
Spark est multiplateforme et peut s’installer sous Linux, MacOS et Windows.
Nous détaillons ci-dessous la procédure d’installation de Spark et de Jupyter pour Windows, OS X et Linux.
Installation directe de Spark et Jupyter¶
Note
Pour ce cours, les versions (testées) à installer des logiciels sont:
Python 3.11
Spark 4.2.0
OpenJDK/Java JDK 25
Jupyter, n’importe quelle version
Installation de Python¶
Pour utiliser pyspark, ainsi que d’autres modules python comme Pandas, Polars, Plotly, etc. il est nécessaire d’installer python. Nous vous recommandons de vous servir de Anaconda en suivant les instructions sur le site. Si vous travaillez déjà sur linux et ne souhaitez pas changer de version python pour éviter les éventuels problèmes avec le système ou d’autres applications il vous suffit de créer un environnement python virtuel pour vos TP RCP216. Anaconda permet de le faire facilement.
Installation de Java¶
Spark est un logiciel écrit dans le langage de programmation Java. Par ailleurs, nous travaillerons avec le langage de programmation Scala, qui est un dérivé de Java et s’exécute sur la même machine virtuelle (JVM).
Par conséquent, il est indispensable d’avoir une installation fonctionnelle de Java sur sa machine afin de pouvoir utiliser Spark.
Il est vraisemblable qu’un Java Runtime Environment soit déjà installé sur votre ordinateur mais peut-être pas un très récent, or Spark 4.2.0 n’accepte que 17, 21 ou 25.
Vous avez le choix entre la version Oracle (propriétaire) et OpenJDK (libre). Nous vous conseillons d’installer une version récente d’OpenJDK, les deux différences entre les deux logiciels étant cosmétiques.
Pour l’installer, par exemple sous Debian/Ubuntu/Linux Mint et dérivés, vous pouvez lancer dans un terminal :
sudo apt install default-jdk
# Ou pour installer une version spécifique :
# sudo apt install openjdk-25-jdk
# Vérifier la version :
java -version
# si inférieure à 21, préférez l'installation de la version spécifique 21 ou 25
Note
D’autres distributions Linux possèdent d’autres outils de gestion d’installation : yum (Red Hat, Fedora, CentOS, …), yast (openSUSE), pacman (ArchLinux), etc.
Référez-vous à la documentation de votre distribution Linux le cas échéant.
Pour OSX, vous devez télécharger la dernière version du Java Development Kit (JDK) gérée par Spark.
Actuellement, il s’agit de la version 25 que vous pouvez obtenir sur la page des téléchargements de Java.
Téléchargez et installez le JDK à partir du fichier jdk-25_macos-x64_bin.dmg.
Sous Windows, vous devez télécharger la dernière version du Java Development Kit (JDK).
Actuellement, il s’agit de la version 25 que vous pouvez obtenir sur la page des téléchargements de Java SE 8.
Téléchargez et installez le JDK à partir du fichier jdk-25_windows-x64_bin.exe.
Installation de Spark¶
Des versions préparées de Spark sont disponibles au téléchargement sur le site officiel du projet : http://spark.apache.org/downloads.html
Il suffit de choisir la version souhaitée et de sélectionner l’archive Pre-built for Apache Hadoop 3.4 and later. des versions plus anciennes sont dans la section Archived Releases. Cliquer ensuite sur le lien spark-[...]-bin-hadoop3.tgz et laisser le fichier s’enregistrer dans le répertoire Téléchargements.
Dans un terminal, décompressez l’archive .tgz dans le répertoire /opt/spark. Par exemple, pour Spark 4.2.0 :
cd ~/Téléchargements
# cd est la commande permettant de changer de répertoire
# Déplacez-vous dans le dossier contenant l'archive de spark
tar xzf spark-4.2.0-bin-hadoop3.tgz
sudo mv spark-4.2.0-bin-hadoop3/ /opt/spark
Une fois ceci fait, vous pouvez lancer pyspark avec la commande :
/opt/spark/bin/pyspark
Ouvrez l’application Terminal et décompressez l’archive .tgz dans le répertoire /opt/spark :
cd ~/Téléchargements
# cd est la commande permettant de changer de répertoire
# Déplacez-vous dans le dossier contenant l'archive de spark
tar xzf spark-4.2.0-bin-hadoop3.tgz
sudo mv spark-4.2.0-bin-hadoop3/ /opt/spark
Une fois-ceci fait, vous pouvez lancer pyspark avec la commande :
/opt/spark/bin/pyspark
Décompressez l’archive .tgz dans le répertoire de votre choix, puis dans l’invite de commandes Windows :
cd Téléchargements\spark-4.2.0-bin-hadoop3
bin\pyspark.cmd
Variables d’environnement¶
Une fois le JDK installé, il est ensuite nécessaire de spécifier la variable d’environnement JAVA_HOME afin que Spark sache où se trouve le répertoire d’installation de Java. Il est également utile de spécifier la variable d’environnement SPARK_HOME pour que Jupyter utilise la version préinstallée de Spark.
Nous allons également configurer la variable d’environnement PATH qui permet au système d’exploitation de trouver l’exécutable Spark sans que nous ayons à spécifier le chemin complet vers celui-ci.
# Pour ne pas avoir à le faire explicitement lors des prochaines sessions
echo "export SPARK_HOME=/opt/spark" >> ~/.bashrc
echo "export PATH=$JAVA_HOME/bin:$SPARK_HOME/bin:$PATH" >> ~/.bashrc
# Pour que le lancement de pyspark lance également jupyter
echo "export PYTHONPATH=$(ZIPS=("$SPARK_HOME"/python/lib/*.zip); IFS=:; echo "${ZIPS[*]}"):$PYTHONPATH" >> ~/.bashrc
echo "export PYSPARK_DRIVER_PYTHON='jupyter'" >> ~/.bashrc
echo "export PYSPARK_DRIVER_PYTHON_OPTS='notebook'" >> ~/.bashrc
Une fois ceci fait, vous pouvez simplement lancer l’interpréteur Spark en langage python en ouvrant un nouveau terminal et en exécutant la commande :
pyspark
Si pyspark renvoie une erreur relative à JAVA_HOME, il vous faudra également spécifier cette variable d’environnement (ce n’est pas nécessaire sur toutes les distributions) :
# Pour ne pas avoir à le faire explicitement lors des prochaines sessions
echo "export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64" >> ~/.bashrc
Pour lancer l’interpréteur Spark en langage Python vous pouvez ouvrir un nouveau terminal et exécuter la commande :
pyspark
Enfin, pour que Jupyter utilise la bonne version de Spark (celle qui est préinstallée) il faut spécifier la variable SPARK_HOME :
# Remplacer si nécessaire /opt/spark par le chemin vers Spark sur votre ordinateur
# Pour ne pas avoir à le faire explicitement lors des prochaines sessions
echo "export SPARK_HOME=/opt/spark" >> ~/.bashrc
Dans le Terminal, entrez la commande suivante :
# Pour ne pas avoir à le faire explicitement lors des prochaines sessions
echo "export SPARK_HOME=/opt/spark" >> ~/.bashrc
echo "export PATH=$JAVA_HOME/bin:$SPARK_HOME/bin:$PATH" >> ~/.zshrc
# Pour que le lancement de pyspark lance également jupyter
echo "export PYSPARK_DRIVER_PYTHON='jupyter'" >> ~/.bashrc
echo "export PYSPARK_DRIVER_PYTHON_OPTS='notebook'" >> ~/.bashrc
Une fois ceci fait, fermez le terminal et ouvrez-en un nouveau. Pour lancer l’interpréteur Spark en langage Python vous pouvez ouvrir un nouveau terminal et exécuter la commande :
pyspark
Pour ce faire, ouvrir l’outil de configuration « Propriétés du système » (par exemple en cherchant « Variables d’environment » dans la barre de recherche Windows).
Ouvrir la fenêtre « Variables d’environnement » puis créer une nouvelle variable d’environnement intitulée JAVA_HOME.
Faites pointer cette variable vers le répertoire où vous avez installé Java (généralement, dans Program Files\Java\jdk-25.x.x).
Ouvrir la fenêtre « Variables d’environnement » pour créer une nouvelle variable d’environnement intitulée SPARK_HOME. Faites pointer cette variable vers le répertoire où se trouve Spark (généralement, dans Program Files\spark).
Ouvrir la fenêtre « Variables d’environnement » pour créer une nouvelle variable d’environnement intitulée PYSPARK_DRIVER_PYTHON et donnez-lui la valeur jupyter, ensuite une variable d’environnement intitulée PYSPARK_DRIVER_PYTHON_OPTS et donnez-lui la valeur notebook.
Modifiez ensuite la variable existante PATH. Cliquez sur Nouveau puis Parcourir et sélectionnez le sous-répertoire bin dans votre installation de Spark.
Une fois-ceci fait, vous pouvez ouvrir une nouvelle invite de commandes et exécuter Spark en lançant simplement :
pyspark
Installation de Jupyter¶
Jupyter est un logiciel libre qui fournit une interface de programmation adaptée à l’analyse de données et à la visualisation. En résumé, Jupyter permet de créer des notebooks (cahiers, ou carnets) combinant code, figures et textes. Jupyter est compatible avec de nombreux interpréteurs et langages de programmation, notamment Python mais aussi Scala et R au travers d’extensions.
Le plus simple pour commencer avec Jupyter est d’installer la distribution Anaconda, à partir de https://www.anaconda.com/products/individual qui inclut, entre autres, Jupyter. Anaconda est disponible sous toutes les plateformes (Windows, Linux, MacOS).
Si cela n’est pas déjà fait, vous devrez également installer wget (qui permet de télécharger des fichiers en ligne de commande). L’installateur est disponible sur le site officiel.