L'essentiel d'Apache Spark

Exécuter un programme avec spark-submit

Testez gratuitement nos 1271 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Après avoir créé un programme d'analyse des données en Python, en Scala ou en Java, vous pouvez l'exécuter avec le programme spark-submit.
06:15

Transcription

La question, maintenant, est comment exécuter de réelles applications avec Spark. Pour l'instant, on a utilisé Spark Shell ou PySpark pour faire des choses interactives. Si vous voulez analyser régulièrement vos données avec Spark, il vous faut des programmes qui vont utiliser les commandes que nous avons vues, par exemple des requêtes SQL qui sont exécutées régulièrement. Pour cela, vous allez créer un programme, un script Python par exemple ou du code Scala que vous allez compiler avec sbt, transformé en jar et vous allez exécuter ce jar. Que ce soit du script Python, du jar, du R, du java directement, vous allez utiliser ensuite spark-submit qui se trouve dans le répertoire bin et auquel vous allez envoyer simplement quelques options en lignes de commande. Je vous l'agrandis un peu ici. Vous allez faire un spark-submit en indiquant quelle est l'application, quelle est la classe que vous voulez utiliser si vous êtes dans un jar et que vous avez développé plusieurs classes. Spark-submit va chercher le programme « main » et démarrer le « main », sur quel master vous allez vous connecter et donc vous allez donner ici l'URL, c'est-à-dire le socket du master préfixé par le gestionnaire de cluster que vous voulez utiliser. Par exemple, ici, le gestionnaire de cluster Spark. Si je vais sur master url, je vois que j'ai local, spark, mesos avec une adresse ou un cluster yarn avec des informations stockées dans les variables d'environnement pour dire où se trouve le maitre du cluster yarn. C'est donc ici que vous allez indiquer quel est le gestionnaire de cluster que vous allez utiliser avec Spark. C'est à peu près tout. Vous avez ici dans la documentation des exemples d'appel. Voici un programme d'exemples qui est livré avec Spark. Comment faire un spark-submit à l'aide d'une application Python, il suffit de référencer le fichier py et on va faire cela très simplement. Je vous ai préparé une application Python, un script très court. Que fais-je ? J'importe une spark session, donc je dois bien importer ici la bibliothèque pyspark.sql pour que Python puisse reconnaitre les commandes de pyspark. Ensuite, je dois créer ma sparkSession comme ceci et c'est obligatoire parce que je ne suis plus dans l'environnement interactif pyspark, je suis dans un programme, il faut que je réouvre une session déjà ouverte automatiquement dans l'invit interactive. Voilà la commande pour une spark session, je lui donne un nom d'application, je l'ai appelé Fantoir pour le fichier des communes et des lieux-dits. Méthode getOut create et maintenant dans la variable spark, j'ai une spark session. Je n'ai pas besoin de donner à cette spark session plus d'information puisque je fais un spark-submit et qu'on est déjà dans le contexte de spark à travers le spark-submit. J'ai ajouté ici juste sur spark, j'ai récupéré le SparkContext à l'intérieur de ma session et j'ai fait un setLogLevel à warn pour éliminer des informations d'infos qui sont loguées par Log4j (je vais vous en parler dans une seconde) et puis j'ouvre mon fichier Parquet qui est visible sur toutes les machines parce que tmp data, si vous vous souvenez, grâce à dockercompose a été mappé sur tous les noeuds de mon cluster, il y en a deux, ce n'est pas beaucoup. Je crée ma vue commune pour pouvoir utiliser commune dans le from je fais un collect qui va me retourner une collection, ici, et puis je vais faire un for dans ma collection, juste pour afficher. Ce n'est pas très gracieux, c'est pour vous montrer un exemple très simple de script pour travailler avec Spark. Evidemment ce que vous allez faire de votre côté, c'est probablement récupérer des données et ensuite refaire un write par exemple en Parquet, en Avro en Json ou en text pour faire du CSV, des résultats que vous avez calculés si vous voulez travailler en mode batch. Cela va ensuite totalement dépendre de votre besoin. À partir de ce script, qui s'appelle fantoire.py que j'ai stocké dans tmp data pour l'avoir à disposition ici dans ma machine, je vais simplement faire un appel bin spark-submit. Je vais dire quel est mon master : en local, je suis ici sur le master et puis je donne l'adresse de mon fichier Python. Spark-submit va prendre le script, voyez qu'il y a beaucoup d'informations de log qui sont de type info, voyez ici. On est passé en warn et donc je n'ai plus toutes ces informations de type info. Voyez que j'ai simplement fait un print en boucle de mes objets raw. Comme je vous le disais, ce n'est pas terrible mais c'est pour vous montrer un exemple d'utilisation. Vous voyez que comme j'ai utilisé ma fonction de fenêtrage, on me dit : attention, tu as potentiellement des dégradations de performance. Je le sais, c'est juste pour un exemple. Au sujet de ce log, vous avez dans votre répertoire spark, dans le répertoire conf, un log4j properties.templace que vous pouvez copier, comme je l'ai fait ici en log4j properties et, ensuite, à l'intérieur de ce log4j properties, il vous suffit (je vais vous montrer le contenu) de changer la root categorie en warn, comme je l'ai fait ici mais comme je n'ai pas redémarré ma console, ça n'a pas été pris en compte c'est pour cela qu'on a vu toutes les infos. Ici vous avez par défaut le niveau info de journalisation, changez-le en warn, ça va vous économiser toutes ces lignes de log inutiles.

L'essentiel d'Apache Spark

Analysez des données volumineuses avec Apache Spark. Chargez vos données pour les analyser, profitez des opérations de transformation et des actions pour agréger vos données, etc.

3h11 (38 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :16 mars 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !