Installation de Spark¶
Pour la réalisation du projet RCP216, ainsi que pour travailler sur les travaux pratiques en dehors des séances organisées, 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. 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 (formation à distance et projet).
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 : Vous avez également la possibilité de consulter ces instructions d’installation préparées par un ancien auditeur qui a suivi avec succès cette UE (et plus généralement le certificat Analyste de données massives).
Installation directe de Spark et Jupyter¶
Note
Pour ce cours, les versions à installer des logiciels sont:
Spark 3.3.0
OpenJDK/Java JDK 8
Apache Toree 0.4
Jupyter, n’importe quelle version
Les autres versions (et notamment OpenJDK > 8 et Spark 3.x) risquent de ne pas fonctionner suite à des changements incompatibles avec les fonctionnalités présentées en TP.
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 récent soit déjà installé sur votre ordinateur mais probablement pas la dernière version du Java Development Kit (JDK) qui est nécessaire. Actuellement, la dernière version du JDK gérée par Spark 3.3 est la version 8.
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-8-jdk
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 8 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-8u241-macosx-x64.dmg
.
Sous Windows, vous devez télécharger la dernière version du Java Development Kit (JDK).
Actuellement, il s’agit de la version 8 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-8u241-windows-x64.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.3 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
:
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-3.3.0-bin-hadoop3.tgz
sudo mv spark-3.3.0-bin-hadoop3/ /opt/spark
Une fois-ceci fait, vous pouvez lancer Spark avec la commande :
/opt/spark/bin/spark-shell
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-3.3.0-bin-hadoop3.tgz
sudo mv spark-3.3.0-bin-hadoop3/ /opt/spark
Une fois-ceci fait, vous pouvez lancer Spark avec la commande :
/opt/spark/bin/spark-shell
Décompressez l’archive .tgz
dans le répertoire de votre choix, puis dans l’invite de commandes Windows :
cd Téléchargements\spark-3.3.0-bin-hadoop3
bin\spark-shell.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 la session en cours
export PATH=$PATH:/opt/spark/bin/
# Pour ne plus avoir à le faire explicitement lors des prochaines sessions
echo "export PATH=$PATH:/opt/spark/bin/" >> ~/.bashrc
# 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, vous pouvez simplement lancer l’interpréteur Spark en langage Scala en ouvrant un nouveau terminal et en exécutant la commande :
spark-shell
Si spark-shell
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) :
# Remplacer 8 par la version de votre JDK
# Pour la session en cours
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
# Pour ne plus avoir à le faire explicitement lors des prochaines sessions
echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk" >> ~/.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 la session en cours
export SPARK_HOME=/opt/spark
# Pour ne plus avoir à le faire explicitement lors des prochaines sessions
echo "export SPARK_HOME=/opt/spark" >> ~/.bashrc
Dans le Terminal, entrez la commande suivante :
# Pour la session en cours
export PATH=$PATH:/opt/spark/bin/
# Pour ne plus avoir à le faire explicitement lors des prochaines sessions
echo "export PATH=$:/opt/spark/bin/" >> ~/.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. Vous pouvez désormais simplement lancer l’interpréteur Spark en langage Scala en exécutant la commande :
spark-shell
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-8.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 :
spark-shell
Pour lancer l’interpréteur Spark en langage Python vous pouvez ouvrir une nouvelle invite de commandes et exécuter la commande :
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).
Une fois ceci fait, il ne reste plus qu’à installer Apache Toree qui est une extension à Jupyter permettant à ce dernier de se connecter à Spark et d’interpréter le langage Scala.
Ouvrez un terminal puis entrez :
# Installation de l'extension Apache Toree
pip install toree
# Configuration de Toree et lien Jupyter/Spark
jupyter toree install --spark_home=$SPARK_HOME
# Vérification
jupyter kernelspec list
Ouvrez un terminal puis entrez :
# Installation de l'extension Apache Toree
pip install toree
# Configuration de Toree et lien Jupyter/Spark
jupyter toree install --spark_home=$SPARK_HOME
# Vérification
jupyter kernelspec list
Depuis le menu Démarrer ou le navigateur Anaconda, ouvrez Anaconda Prompt puis entrez :
# Installation de l'extension Apache Toree
pip install toree
# Configuration de Toree et lien Jupyter/Spark
jupyter toree install --spark_home=%SPARK_HOME%
# Vérification
jupyter kernelspec list
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.
Si tout s’est bien passé, la dernière commande devrait vous afficher au moins une ligne contenant la mention apache_toree_scala
.