Cette page contient des instructions pour vous permettre d'utiliser Spark et HDFS dans les salles TME de la PPTI.
Les API de Spark pour le langage scala décrivent les méthodes de manipulation des données
Vérifier que spark (version 2.4) est installé sur votre machine, en salle de TME, en tapant
source /Infos/bd/spark/config.sh which spark-shell
cela doit afficher /usr/local/spark-2.4.4-bin-hadoop2.7/bin/spark-shell
Si c'est le cas ajouter à la fin de votre fichier .bashrc
la ligne suivante :
source /Infos/bd/spark/config.sh
Puis lancer le client Spark :
spark-shell --driver-memory 8G --executor-memory 8G
puis saisir
sc.setLogLevel("ERROR")
Pour quitter Spark, taper :q (ne pas saisir Crtl-C)
:q
A faire seulement si vous utilisez votre machine personelle et que spark n'est pas déjà installé: télécharger la dernière version de Spark depuis http://spark.apache.org/downloads.html. Décompresser l'archive obtenue et ajouter dans votre fichier .bashrc les lignes :
export SPARK_HOME=<le-chemin-vers-votre-dosier-spark> export PATH=$SPARK_HOME/bin:$PATH
puis appliquer les lignes ajoutées en exécutant
source ~/.bashrc
Pour utiliser Spark en mode local, il suffit d'exécuter la commande
spark-shell --driver-memory 8G --executor-memory 8G
Une fois que vous avez l'invite Scala, exécuter
sc.setLogLevel("ERROR")
pour restreindre l'affichage des logs aux erreurs seulement.
Pré-requis : disposer d'une installation locale de spark et de jupyter-notebook.
SPARK_HOME
qui devra pointer vers le répertoire d'installation de Spark
pip install spylon-kernel
python -m spylon_kernel install
Le Tuto est aussi disponible depuis la page Mini-projet 2018
Pour ceux qui le désirent, il est possible d'utiliser un environnement graphique vous facilitant la saisie des instructions Scala. Voir le notebook Apache Zeppelin
Insérer le contenu du fichier /Infos/bd/spark/spark-emacs.el dans votre propre fichier de configuration emacs :
mkdir ~/.emacs.d # si le répertoire n'existe pas cat /Infos/bd/spark/spark-emacs.el >> $HOME/.emacs.d/init.el cat /Infos/bd/spark/spark-emacs.el >> $HOME/.emacs
Dans emacs, ouvrer le fichier de TME dans lequel vous éditer votre exercice spark en scala. Puis lancer un shell avec Alt-x shell Pour diviser votre editeur en 2 zones (2 buffers), faire Ctrl-x 3. Dans le buffer shell taper
source /Infos/bd/spark-config spark-shell --driver-memory 10G
Revenir dans le buffer contenant l'exercice du TME, positionner le curseur sur la ligne que vous souhaitez traiter, et taper Ctrl-j pour “soumettre” la ligne vers le spark-shell. Si une région (zone surlignée) a déjà été sélectionnée, Ctrl-j envoie toutes les lignes de la région.
Problème de Tabulation Le spark-shell n'interprète pas correctement les lignes qui commencent par un caractère de tabulation (touche Tab). Ne pas mettre de tabulation en début de ligne mais utiliser plusieurs caractères espaces.
Pour exécuter un code source en bloc, tapez
:paste
puis coller votre code source.
Pour charger les instructions à partir d'un fichier
:load chemin_vers_fichier
Retour vers les TMEs