Übermitteln und Verwalten von Aufträgen auf einem Apache Spark™-Cluster in HDInsight auf AKS
Hinweis
Azure HDInsight on AKS wird am 31. Januar 2025 eingestellt. Vor dem 31. Januar 2025 müssen Sie Ihre Workloads zu Microsoft Fabric oder einem gleichwertigen Azure-Produkt migrieren, um eine abruptes Beendigung Ihrer Workloads zu vermeiden. Die verbleibenden Cluster in Ihrem Abonnement werden beendet und vom Host entfernt.
Bis zum Einstellungsdatum ist nur grundlegende Unterstützung verfügbar.
Wichtig
Diese Funktion steht derzeit als Vorschau zur Verfügung. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen enthalten weitere rechtliche Bestimmungen, die für Azure-Features in Betaversionen, in Vorschauversionen oder anderen Versionen gelten, die noch nicht allgemein verfügbar gemacht wurden. Informationen zu dieser spezifischen Vorschau finden Sie unter Informationen zur Vorschau von Azure HDInsight on AKS. Bei Fragen oder Funktionsvorschlägen senden Sie eine Anfrage an AskHDInsight mit den entsprechenden Details, und folgen Sie uns für weitere Updates in der Azure HDInsight-Community.
Nachdem der Cluster erstellt wurde, können Benutzer*innen die folgenden Schnittstellen verwenden, um Aufträge zu übermitteln und zu verwalten:
- Jupyter
- Zeppelin
- SSH (spark-submit)
Mit Jupyter
Voraussetzungen
Ein Apache Spark™-Cluster auf HDInsight on AKS. Weitere Informationen finden Sie unter Erstellen eines Apache Spark-Clusters.
Jupyter Notebook ist eine interaktive Notebook-Umgebung, die verschiedene Programmiersprachen unterstützt.
Erstellen eines Jupyter Notebooks
Navigieren Sie zur Spark™-Clusterseite, und öffnen Sie die Registerkarte Übersicht. Klicken Sie auf „Jupyter“. Dadurch werden Sie aufgefordert, sich zu authentifizieren und die Jupyter-Webseite zu öffnen.
Wählen Sie auf der Jupyter-Webseite „Neu > PySpark“ aus, um ein Notebook zu erstellen.
Ein neues Notebook mit dem Namen
Untitled(Untitled.ipynb)
wird erstellt und geöffnet.Hinweis
Wenn Sie den PySpark- oder Python 3-Kernel zum Erstellen eines Notebooks verwenden, wird die Spark-Sitzung automatisch beim Ausführen der ersten Codezelle für Sie erstellt. Die Sitzung muss nicht explizit erstellt werden.
Fügen Sie den folgenden Code in eine leere Zelle des Jupyter Notebooks ein, und drücken Sie UMSCHALT+EINGABE, um den Code auszuführen. Weitere Steuerelemente in Jupyter finden Sie hier.
%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'])
Zeichnen Sie ein Diagramm, auf dem das Gehalt und Alter als X- und Y-Achsen dargestellt werden.
Fügen Sie im selben Notebook den folgenden Code in eine leere Zelle der Jupyter Notebook-Instanz ein, und drücken Sie UMSCHALT+EINGABE, um den Code auszuführen.
%matplotlib inline import pandas as pd import matplotlib.pyplot as plt plt.plot(age_series,salary_series) plt.show()
Speichern des Notebooks
Navigieren Sie auf der Menüleiste des Notebooks zu „Datei > Speichern und Prüfpunkt“.
Fahren Sie das Notebook herunter, um die Clusterressourcen freizugeben. Navigieren Sie dazu auf der Menüleiste des Notebooks zu „Datei > Schließen und anhalten“. Sie können ebenfalls alle Notebooks unter dem Beispielordner ausführen.
Mit Apache Zeppelin-Notebooks
Apache Spark-Cluster in HDInsight auf AKS enthalten Apache Zeppelin-Notebooks. Verwenden Sie die Notebooks, um Apache Spark-Aufträge auszuführen. In diesem Artikel erfahren Sie, wie Sie das Zeppelin-Notebook in einem HDInsight on AKS-Cluster verwenden.
Voraussetzungen
Einen Apache Spark-Cluster unter HDInsight on AKS. Anweisungen finden Sie unter Erstellen eines Apache Spark-Clusters.
Starten des Apache Zeppelin Notebooks
Navigieren Sie zur Übersicht des Apache Spark-Clusters, und wählen Sie das Zeppelin-Notebook auf dem Clusterdashboard aus. Dort werden Sie aufgefordert, sich zu authentifizieren und die Seite „Zeppelin“ zu öffnen.
Erstellen Sie ein neues Notebook. Navigieren Sie im Headerbereich zu „Notebook > Neue Notiz erstellen“. Stellen Sie sicher, dass im Header des Notebooks der Status „Verbunden“ angezeigt wird. Daraufhin wird ein grüner Punkt in der oberen rechten Ecke angezeigt.
Führen Sie den folgenden Code in einem Zeppelin-Notebook aus.
%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'])
Wählen Sie die Schaltfläche Wiedergeben aus, damit der Absatz das Codeschnipsel ausführt. Der Status in der rechten Ecke des Absatzes sollte sich entsprechend ändern: BEREIT, AUSSTEHEND, WIRD AUSGEFÜHRT bis zu BEENDET. Die Ausgabe wird unten im Absatz angezeigt. Der Screenshot sieht wie folgt aus:
Ausgabe:
Mit Submit-Aufträgen von Spark
Erstellen Sie mit dem folgenden Befehl eine neue Datei: #vim samplefile.py
Dieser Befehl öffnet die Datei in Vim.
Fügen Sie den folgenden Code in die Datei in Vim ein.
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'])
Speichern Sie die Datei mit der folgenden Methode.
- Drücken Sie die ESC-Taste.
- Geben Sie den Befehl
:wq
ein.
Führen Sie den folgenden Befehl aus, um den Auftrag auszuführen.
/spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py
Überwachen von Abfragen in einem Apache Spark-Cluster in HDInsight auf AKS
Benutzeroberfläche für den Spark-Verlauf
Klicken Sie auf der Registerkarte „Übersicht“ auf die Serverbenutzeroberfläche „Spark-Verlauf“.
Wählen Sie auf der Benutzeroberfläche mithilfe derselben Anwendungs-ID die letzte Ausführung aus.
Zeigen Sie die Zyklen des gerichteten azyklischen Graphen und die Phasen des Auftrags auf der Serverbenutzeroberfläche des Spark-Verlaufs an.
Livy-Sitzungsbenutzeroberfläche
Geben Sie den folgenden Befehl in Ihren Browser ein, um die Livy-Sitzungsbenutzeroberfläche zu öffnen:
https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui
Zeigen Sie die Treiberprotokolle an, indem Sie unter „Protokolle“ auf die Option „Treiber“ klicken.
YARN-Benutzeroberfläche
Klicken Sie auf der Registerkarte „Übersicht“ auf „Yarn“, und öffnen Sie die Yarn-Benutzeroberfläche.
Sie können mit derselben Anwendungs-ID den Auftrag nachverfolgen, den Sie kürzlich ausgeführt haben.
Klicken Sie in Yarn auf „Anwendungs-ID“, um die ausführlichen Protokolle des Auftrags anzuzeigen.
Verweis
- Apache, Apache Spark, Spark und zugehörige Open Source-Projektnamen sind Handelsmarken der Apache Software Foundation (ASF).