Retour
ML & IA
Novembre 2021

Sparkmagic sur Qarnot Cloud

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.

Versions

Si une autre version vous intéresse, veuillez nous envoyer un courriel à qlab@qarnot.com.

Prérequis

Avant de démarrer un calcul avec le SDK Python, quelques étapes sont nécessaires :

  1. Récupérer le jeton d'authentification
  2. Installer le SDK Python de Qarnot (ici)

Note : En plus du SDK Python, Qarnot fournit des SDK C# et Node.js ainsi qu'une ligne de commande.

Cas de test

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 :

Les fichiers input et wordcount.ipynb peuvent être téléchargés via ce lien.

Lancement du cas de test

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.

1. Installation de la librairie

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.

2. Vérification d'ipywidgets

Assurez-vous que ipywidgets est correctement installé en exécutant :

jupyter nbextension enable --py --sys-prefix widgetsnbextension

3. Lancement de la tâche sur Qarnot

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.

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 :

Résultats

À 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.

Conclusion

C'est tout ! Si vous avez des questions, veuillez contacter qlab@qarnot.com et nous vous aiderons avec plaisir !

Retour

Nos articles