Freigeben über


Übermitteln und Verwalten von Aufträgen auf einem Apache Spark-Cluster™ in HDInsight auf AKS

Wichtig

Azure HDInsight auf AKS wurde am 31. Januar 2025 eingestellt. Erfahren Sie mehr in dieser Ankündigung.

Sie müssen Ihre Workloads zu Microsoft Fabric oder ein gleichwertiges Azure-Produkt migrieren, um eine abrupte Beendigung Ihrer Workloads zu vermeiden.

Wichtig

Dieses Feature befindet sich derzeit in der Vorschau. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure Previews weitere rechtliche Bestimmungen enthalten, die für Azure-Features gelten, die in der Betaversion, in der Vorschau oder auf andere Weise noch nicht in die allgemeine Verfügbarkeit veröffentlicht werden. Informationen zu dieser spezifischen Vorschau finden Sie unter Azure HDInsight auf AKS-Vorschauinformationen. Für Fragen oder Funktionsvorschläge reichen Sie bitte eine Anfrage ein auf AskHDInsight mit den Details und folgen Sie uns, um weitere Updates zur Azure HDInsight Communityzu erhalten.

Nachdem der Cluster erstellt wurde, kann der Benutzer verschiedene Schnittstellen verwenden, um Aufträge zu übermitteln und zu verwalten.

  • Verwenden von Jupyter
  • Verwendung von Zeppelin
  • Verwendung von SSH (spark-submit)

Verwenden von Jupyter

Voraussetzungen

Ein Apache Spark-Cluster™ auf HDInsight auf AKS. Weitere Informationen finden Sie unter Erstellen eines Apache Spark-Clusters.

Jupyter Notebook ist eine interaktive Notizbuchumgebung, die verschiedene Programmiersprachen unterstützt.

Erstellen eines Jupyter-Notizbuchs

  1. Navigieren Sie zur Apache Spark-Clusterseite™, und öffnen Sie die Registerkarte Übersicht. Klicken Sie auf Jupyter, sie fordert Sie auf, sich zu authentifizieren und die Jupyter-Webseite zu öffnen.

    Screenshot zur Auswahl eines Jupyter-Notizbuchs.

  2. Wählen Sie auf der Jupyter-Webseite "Neu" > PySpark aus, um ein Notizbuch zu erstellen.

    Screenshot der neuen PySpark-Seite.

    Ein neues Notizbuch mit dem Namen Untitled(Untitled.ipynb)wurde erstellt und geöffnet.

    Anmerkung

    Mithilfe des PySpark- oder Python 3-Kernels zum Erstellen eines Notizbuchs wird die Spark-Sitzung automatisch für Sie erstellt, wenn Sie die erste Codezelle ausführen. Sie müssen die Sitzung nicht explizit erstellen.

  3. Fügen Sie den folgenden Code in eine leere Zelle des Jupyter-Notizbuchs ein, und drücken Sie dann UMSCHALT+EINGABETASTE, um den Code auszuführen. Weitere Steuerelemente für Jupyter finden Sie hier .

    Screenshot der PySpark-Seite mit Inhalt.

    %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'])
    
  4. Zeichnen eines Diagramms mit Gehalt und Alter als X- und Y-Achse

  5. Fügen Sie im selben Notizbuch den folgenden Code in eine leere Zelle des Jupyter-Notizbuchs ein, und drücken Sie dann UMSCHALT+EINGABETASTE, um den Code auszuführen.

    %matplotlib inline
    import pandas as pd
    import matplotlib.pyplot as plt
    
    plt.plot(age_series,salary_series)
    plt.show()
    

    Screenshot der Diagrammausgabe.

Speichern des Notizbuchs

  1. Navigieren Sie in der Menüleiste des Notizbuchs zu "Datei" > "Speichern und Prüfpunkt".

  2. Schließen Sie das Notizbuch, um die Clusterressourcen freizugeben: Navigieren Sie in der Menüleiste des Notizbuchs zu "Datei" > "Schließen und Beenden". Sie können auch alle Notizbücher unter dem Beispielordner ausführen.

    Screenshot zum Speichern der Notizenbücher.

Verwenden von Apache Zeppelin-Notizbüchern

Apache Spark Cluster in HDInsight auf AKS umfassen Apache Zeppelin-Notebooks. Verwenden Sie die Notizbücher, um Apache Spark-Aufträge auszuführen. In diesem Artikel erfahren Sie, wie Sie das Zeppelin-Notizbuch auf einem HDInsight-Cluster auf AKS verwenden.

Voraussetzungen

Ein Apache Spark-Cluster auf HDInsight auf AKS. Anweisungen finden Sie unter Erstellen eines Apache Spark-Clusters.

Starten eines Apache Zeppelin-Notizbuchs

  1. Navigieren Sie zur Seite "Apache Spark-Clusterübersicht" und wählen Sie "Zeppelin-Notizbuch" aus den Cluster-Dashboards aus. Er fordert auf, sich zu authentifizieren und die Seite "Zeppelin" zu öffnen.

    Screenshot, wie man Zeppelin auswählt.

  2. Erstellen Sie ein neues Notizbuch. Navigieren Sie im Kopfzeilenbereich zu "Notizbuch" > "Neue Notiz erstellen". Stellen Sie sicher, dass der Notizbuchkopf einen verbundenen Status anzeigt. Er zeigt einen grünen Punkt in der oberen rechten Ecke an.

    Screenshot zum Erstellen eines Zeppelin-Notizbuchs.

  3. Führen Sie den folgenden Code im Zeppelin-Notizbuch 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'])
    
  4. Wählen Sie die Schaltfläche Wiedergabe für den Absatz aus, um den Ausschnitt auszuführen. Der Status in der rechten Ecke des Absatzes sollte sich von BEREIT, AUSSTEHEND, LÄUFT zu ABGESCHLOSSEN ändern. Die Ausgabe wird unten im selben Absatz angezeigt. Der Screenshot sieht wie in der folgenden Abbildung aus:

    Screenshot zum Ausführen eines Zeppelin-Notizbuchs.

    Ausgabe:

    Screenshot der Ausgabe des Zeppelin-Notizbuchs.

Verwendung von Spark-Submit-Aufträgen

  1. Erstellen einer Datei mit dem folgenden Befehl "#vim samplefile.py"

  2. Mit diesem Befehl wird die Vim-Datei geöffnet.

  3. Fügen Sie den folgenden Code in die Vim-Datei 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'])
    
  4. Speichern Sie die Datei mit der folgenden Methode.

    1. Drücken Der Escape-Taste
    2. Geben Sie den Befehl :wq ein.
  5. Führen Sie den folgenden Befehl aus, um den Auftrag auszuführen.

    /spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py

    Screenshot, der zeigt, wie Spark Submit-Auftrag ausgeführt wird.

Überwachen von Abfragen auf einem Apache Spark-Cluster in HDInsight auf AKS

Spark-Verlaufs-UI

  1. Klicken Sie auf der Registerkarte "Übersicht" auf die Spark History Server-Benutzeroberfläche.

    Screenshot mit Spark UI.

  2. Wählen Sie die zuletzt ausgeführte Ausführung auf der Benutzeroberfläche mit derselben Anwendungs-ID aus.

    Screenshot, der zeigt, wie Spark UI ausgeführt wird.

  3. Zeigen Sie die Phasen des Jobs und den gerichteten azyklischen Graphen in der Spark History-Server-UI an.

    Screenshot des DAG-Zyklus.

Livy Session UI

  1. Um die Livy-Sitzungs-UI zu öffnen, geben Sie den folgenden Befehl in Ihren Browser https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui

    Screenshot zum Öffnen der Livy-Sitzungs-UI.

  2. Zeigen Sie die Treiberprotokolle an, indem Sie unter Protokollen auf die Treiberoption klicken.

Yarn UI-

  1. Klicken Sie auf der Registerkarte "Übersicht" auf Yarn, und öffnen Sie die Yarn-Benutzeroberfläche.

    Screenshot zum Auswählen der Yarn-Benutzeroberfläche.

  2. Sie können den Auftrag nachverfolgen, den Sie kürzlich ausgeführt haben, indem Sie dieselbe Anwendungs-ID verwenden.

  3. Klicken Sie in Yarn auf die Anwendungs-ID, um detaillierte Protokolle des Auftrags anzuzeigen.

    Protokolle anzeigen.

Referenz