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.

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

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

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.