Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:master:bdle:tmes:spark

Utilisation de Spark

Cette page contient des instructions pour vous permettre d'utiliser Spark et HDFS dans les salles TME de la PPTI.

API de Spark

Les API de Spark pour le langage scala décrivent les méthodes de manipulation des données

Installation de Spark (à réaliser une seule fois)

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

Utilisation en mode local (plutôt conseillé)

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.

Utilisation de jupyter-notebook depuis une machine personnelle

Pré-requis : disposer d'une installation locale de spark et de jupyter-notebook.

  1. créer une variable d’environnement
    SPARK_HOME

    qui devra pointer vers le répertoire d'installation de Spark

  2. installer le package spylon-kernel en tapant
     pip install spylon-kernel
  3. rajouter le kernel en tapant
    python -m spylon_kernel install
  4. lancer jupyter-notebook puis sélectionner le kernel spylon_kernel. L'instance Spark démarrera à l'évaluation de la première instruction

Utilisation de l'outil IDEA (plutôt conseillé)

Tuto IDEA

Le Tuto est aussi disponible depuis la page Mini-projet 2018

Utilisation d'un notebook

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

Utilisation intégrée dans emacs (moins conseillé)

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.

Quelques commandes utiles

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

site/enseignement/master/bdle/tmes/spark.txt · Dernière modification: 22/10/2019 18:05 par amine