Envoyer et gérer des travaux sur un cluster Apache Spark™ dans HDInsight sur AKS
Important
Azure HDInsight sur AKS a été mis hors service le 31 janvier 2025. En savoir plus avec cette annonce.
Vous devez migrer vos charges de travail vers Microsoft Fabric ou un produit Azure équivalent pour éviter l’arrêt brusque de vos charges de travail.
Important
Cette fonctionnalité est actuellement en préversion. Les Conditions d’utilisation supplémentaires pour les préversions Microsoft Azure incluent des termes juridiques supplémentaires qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou qui ne sont pas encore publiées en disponibilité générale. Pour plus d’informations sur cette préversion spécifique, consultez informations sur Azure HDInsight sur AKS en préversion. Pour des questions ou des suggestions de fonctionnalités, envoyez une demande sur AskHDInsight avec les détails et suivez-nous pour plus de mises à jour sur Communauté Azure HDInsight.
Une fois le cluster créé, l’utilisateur peut utiliser différentes interfaces pour envoyer et gérer des travaux par
- utilisation de Jupyter
- utilisation de Zeppelin
- à l’aide de ssh (spark-submit)
Utilisation de Jupyter
Conditions préalables
Un cluster Apache Spark™ sur HDInsight sur AKS. Pour plus d’informations, consultez Créer un cluster Apache Spark.
Jupyter Notebook est un environnement de notebook interactif qui prend en charge différents langages de programmation.
Créer un notebook Jupyter
Accédez à la page du cluster Apache Spark™ et ouvrez l’onglet Vue d’ensemble Vue d’ensemble. Cliquez sur Jupyter, il vous demande de vous authentifier et d’ouvrir la page web Jupyter.
Dans la page web de Jupyter, cliquez sur "Nouveau" > PySpark pour créer un notebook.
Un bloc-notes créé et ouvert avec le nom
Untitled(Untitled.ipynb)
.Note
En utilisant le noyau PySpark ou Python 3 pour créer un notebook, la session Spark est automatiquement créée pour vous lorsque vous exécutez la première cellule de code. Vous n’avez pas besoin de créer explicitement la session.
Collez le code suivant dans une cellule vide du bloc-notes Jupyter, puis appuyez sur Maj + Entrée pour exécuter le code. Consultez ici pour plus de contrôles sur Jupyter.
%matplotlib inline import pandas as pd import matplotlib.pyplot as plt data1 = [22,40,10,50,70] s1 = pd.Series(data1) #One-dimensional ndarray with axis labels (including time series). data2 = data1 index = ['John','sam','anna','smith','ben'] s2 = pd.Series(data2,index=index) data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70} s3 = pd.Series(data3) s3['jp'] = 32 #insert a new row s3['John'] = 88 names = ['John','sam','anna','smith','ben'] ages = [10,40,50,48,70] name_series = pd.Series(names) age_series = pd.Series(ages) data_dict = {'name':name_series, 'age':age_series} dframe = pd.DataFrame(data_dict) #create a pandas DataFrame from dictionary dframe['age_plus_five'] = dframe['age'] + 5 #create a new column dframe.pop('age_plus_five') #dframe.pop('age') salary = [1000,6000,4000,8000,10000] salary_series = pd.Series(salary) new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series} new_dframe = pd.DataFrame(new_data_dict) new_dframe['average_salary'] = new_dframe['age']*90 new_dframe.index = new_dframe['name'] print(new_dframe.loc['sam'])
Tracer un graphique avec Salaire et âge comme axes X et Y
Dans le même bloc-notes, collez le code suivant dans une cellule vide du bloc-notes Jupyter, puis appuyez sur Maj + Entrée pour exécuter le code.
%matplotlib inline import pandas as pd import matplotlib.pyplot as plt plt.plot(age_series,salary_series) plt.show()
Enregistrer le bloc-notes
Dans la barre de menus du bloc-notes, accédez à Fichier > Enregistrer et Point de contrôle.
Arrêtez le bloc-notes pour libérer les ressources du cluster : dans la barre de menus du bloc-notes, accédez à Fichier > Fermer et Arrêter. Vous pouvez également exécuter l’un des blocs-notes sous le dossier exemples.
Utilisation de notebooks Apache Zeppelin
Les clusters Apache Spark sur AKS dans le service HDInsight incluent des notebooks Apache Zeppelin. Utilisez les notebooks pour exécuter des travaux Apache Spark. Dans cet article, vous allez apprendre à utiliser le notebook Zeppelin sur un cluster HDInsight sur AKS.
Conditions préalables
Un cluster Apache Spark sur HDInsight sur AKS. Pour obtenir des instructions, consultez Créer un cluster Apache Spark.
Lancer un notebook Apache Zeppelin
Accédez à la page Vue d’ensemble du cluster Apache Spark et sélectionnez Bloc-notes Zeppelin dans les tableaux de bord du cluster. Il invite à s’authentifier et à ouvrir la page Zeppelin.
Créez un bloc-notes. Dans le volet d’en-tête, accédez à Notebook > Créer une note. Vérifiez que l’en-tête du bloc-notes affiche le statut connecté. Il désigne un point vert dans le coin supérieur droit.
Exécutez le code suivant dans Zeppelin Notebook :
%livy.pyspark import pandas as pd import matplotlib.pyplot as plt data1 = [22,40,10,50,70] s1 = pd.Series(data1) #One-dimensional ndarray with axis labels (including time series). data2 = data1 index = ['John','sam','anna','smith','ben'] s2 = pd.Series(data2,index=index) data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70} s3 = pd.Series(data3) s3['jp'] = 32 #insert a new row s3['John'] = 88 names = ['John','sam','anna','smith','ben'] ages = [10,40,50,48,70] name_series = pd.Series(names) age_series = pd.Series(ages) data_dict = {'name':name_series, 'age':age_series} dframe = pd.DataFrame(data_dict) #create a pandas DataFrame from dictionary dframe['age_plus_five'] = dframe['age'] + 5 #create a new column dframe.pop('age_plus_five') #dframe.pop('age') salary = [1000,6000,4000,8000,10000] salary_series = pd.Series(salary) new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series} new_dframe = pd.DataFrame(new_data_dict) new_dframe['average_salary'] = new_dframe['age']*90 new_dframe.index = new_dframe['name'] print(new_dframe.loc['sam'])
Sélectionnez le bouton Lire pour que le paragraphe exécute l’extrait de code. L’état dans le coin supérieur droit du paragraphe doit passer de « READY », « PENDING », « RUNNING » à « FINISHED ». La sortie s’affiche au bas du même paragraphe. La capture d’écran ressemble à l’image suivante :
Sortie:
Utilisation des soumissions Spark
Créez un fichier à l’aide de la commande suivante « #vim samplefile.py »
Cette commande ouvre le fichier vim
Collez le code suivant dans le fichier vim
import pandas as pd import matplotlib.pyplot as plt From pyspark.sql import SparkSession Spark = SparkSession.builder.master('yarn').appName('SparkSampleCode').getOrCreate() # Initialize spark context data1 = [22,40,10,50,70] s1 = pd.Series(data1) #One-dimensional ndarray with axis labels (including time series). data2 = data1 index = ['John','sam','anna','smith','ben'] s2 = pd.Series(data2,index=index) data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70} s3 = pd.Series(data3) s3['jp'] = 32 #insert a new row s3['John'] = 88 names = ['John','sam','anna','smith','ben'] ages = [10,40,50,48,70] name_series = pd.Series(names) age_series = pd.Series(ages) data_dict = {'name':name_series, 'age':age_series} dframe = pd.DataFrame(data_dict) #create a pandas DataFrame from dictionary dframe['age_plus_five'] = dframe['age'] + 5 #create a new column dframe.pop('age_plus_five') #dframe.pop('age') salary = [1000,6000,4000,8000,10000] salary_series = pd.Series(salary) new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series} new_dframe = pd.DataFrame(new_data_dict) new_dframe['average_salary'] = new_dframe['age']*90 new_dframe.index = new_dframe['name'] print(new_dframe.loc['sam'])
Enregistrez le fichier avec la méthode suivante.
- Appuyez sur le bouton Échappement
- Entrez la commande
:wq
Exécutez la commande suivante pour exécuter le travail.
/spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py
Surveiller les requêtes sur un cluster Apache Spark dans HDInsight sur AKS
Interface utilisateur de l’historique Spark
Cliquez sur l’interface utilisateur du serveur d’historique Spark dans l’onglet Vue d’ensemble.
Sélectionnez l’exécution récente à partir de l’interface utilisateur à l’aide du même ID d’application.
Affichez le Graphe Dirigé Acyclique et les étapes de la tâche dans l'interface utilisateur du serveur Spark History.
de l’interface utilisateur de session Livy
Pour ouvrir l’interface utilisateur de session Livy, tapez la commande suivante dans votre navigateur
https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui
Affichez les journaux du pilote en cliquant sur l’option de pilote sous journaux.
de l’interface utilisateur Yarn
Dans l’onglet Vue d’ensemble, cliquez sur Yarn et ouvrez l’interface utilisateur Yarn.
Vous pouvez suivre le travail que vous avez récemment exécuté par le même ID d’application.
Cliquez sur l’ID d’application dans Yarn pour afficher les journaux détaillés du travail.
Référence
- Apache, Apache Spark, Spark et les noms de projets open source associés sont marques déposées de la Apache Software Foundation (ASF).