Sparkmagic permet à l'utilisateur de se connecter à un cluster Spark distant à partir d'un Jupyter Notebook local et d'interagir avec lui via Livy, un serveur REST Spark, à l'aide de magics, un ensemble de commandes pour exécuter du code Spark de manière interactive dans plusieurs langages.
Voici un guide rapide, étape par étape, pour utiliser Sparkmagic et interagir avec un cluster Spark exécuté sur Qarnot depuis votre ordinateur local.
Si une autre version vous intéresse, veuillez nous envoyer un courriel à qlab@qarnot.com.
Avant de démarrer un calcul avec le SDK Python, quelques étapes sont nécessaires :
Note : En plus du SDK Python, Qarnot fournit des SDK C# et Node.js ainsi qu'une ligne de commande.
Ce tutoriel montrera comment compter le nombre de mots dans l'Iliade de manière distribuée en utilisant Sparkmagic. Le workflow est le suivant :
Avant d'aller plus loin, vous devez configurer votre environnement de travail pour qu'il contienne les fichiers suivants :
input/iliad.txt
: fichier texte contenant l'Iliade à compter sur Qarnot.spark-magic.py
: script pour démarrer le cluster sur Qarnot (voir ci-dessous).wordcount.ipynb
: Jupyter Notebook pour se connecter au cluster Spark.Les fichiers input
et wordcount.ipynb
peuvent être téléchargés via ce lien.
Avant de continuer, assurez-vous d'installer Sparkmagic en suivant ces étapes simples. Notez qu'il est préférable de l'installer dans un environnement virtuel Python.
pip install sparkmagic
Notez que la compilation de pykerberos
, une dépendance de Sparkmagic, peut échouer si la librairie requise n'est pas installée. Si vous rencontrez une erreur telle que : error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
, essayez d'exécuter la commande suivante : sudo apt install krb5-multidev
si vous utilisez Ubuntu.
Assurez-vous que ipywidgets
est correctement installé en exécutant :
jupyter nbextension enable --py --sys-prefix widgetsnbextension
Une fois que tout est configuré, utilisez le script suivant pour lancer le cluster sur Qarnot. Pour ce faire, copiez le code ci-dessous dans un script Python nommé spark-magic.py
au même niveau que les dossiers input
et le fichier wordcount.ipynb
.
<<<MY_SECRET_TOKEN>>>
à la ligne 10.<<<PUBLIC_SSH_KEY>>>
à la ligne 27.Pour lancer ce script, exécutez simplement python3 spark-magic.py
dans votre terminal.
Par défaut, il vous connectera à Qarnot via SSH dans un gnome-terminal
. Si vous n'avez pas cette application de terminal installée ou souhaitez en utiliser une autre, vous pouvez exécuter : python3 spark-magic.py --terminal=<<<application-terminal-unix>>>
. De plus, si vous souhaitez désactiver cette fonctionnalité et n'afficher que la commande que vous pouvez exécuter vous-même dans votre terminal, vous pouvez définir --terminal=off
.
Dès qu'un nouveau terminal apparaît sur votre écran, cela signifie que la connexion SSH avec le cluster est sécurisée. Vous pouvez alors lancer le notebook fourni en exécutant jupyter notebook wordcount.ipynb
dans votre terminal local.
Ce notebook contient des étapes faciles à suivre pour vous connecter au cluster Spark et compléter ce cas d'usage ! La capture d'écran ci-dessous montre à quoi devrait ressembler le notebook une fois que vous avez terminé le cas d'usage.
Vous accédez également aux tableaux de bord redirigés suivants en tapant localhost:<port>
dans votre navigateur :
8088
: l'interface utilisateur Hadoop Yarn UI8998
: l'interface utilisateur du serveur LivyÀ tout moment, vous pouvez surveiller l'état de votre tâche sur notre plateforme.
Une fois que vous avez terminé la tâche, tapez simplement exit
dans le terminal SSH pour fermer le tunneling et assurez-vous d'annuler la tâche depuis notre plateforme. Si vous n'annulez pas la tâche manuellement, elle continuera de s'exécuter et utilisera vos crédits.
C'est tout ! Si vous avez des questions, veuillez contacter qlab@qarnot.com et nous vous aiderons avec plaisir !