Teilen über


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

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 in 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

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

    Screenshot: Auswählen von Jupyter Notebook.

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

    Screenshot: Neue PySpark-Seite.

    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.

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

    Screenshot: 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 Sie ein Diagramm, auf dem das Gehalt und Alter als X- und Y-Achsen dargestellt werden.

  5. 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()
    

    Screenshot: Graph-Ausgabe.

Speichern des Notebooks

  1. Navigieren Sie auf der Menüleiste des Notebooks zu „Datei > Speichern und Prüfpunkt“.

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

    Screenshot: Speicherns der Notebooks.

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

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

    Screenshot: Auswählen von Zeppelin.

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

    Screenshot: Erstellen eines Zeppelin-Notebooks.

  3. 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'])
    
  4. 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:

    Screenshot: Ausführen des Zeppelin-Notebooks.

    Ausgabe:

    Screenshot: Ausgabe des Zeppelin-Notebooks.

Mit Submit-Aufträgen von Spark

  1. Erstellen Sie mit dem folgenden Befehl eine neue Datei: #vim samplefile.py

  2. Dieser Befehl öffnet die Datei in Vim.

  3. 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'])
    
  4. Speichern Sie die Datei mit der folgenden Methode.

    1. Drücken Sie die ESC-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: Ausführen eines Spark-Submit-Auftrags.

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

Benutzeroberfläche für den Spark-Verlauf

  1. Klicken Sie auf der Registerkarte „Übersicht“ auf die Serverbenutzeroberfläche „Spark-Verlauf“.

    Screenshot: Spark-Benutzeroberfläche.

  2. Wählen Sie auf der Benutzeroberfläche mithilfe derselben Anwendungs-ID die letzte Ausführung aus.

    Screenshot: Ausführen der Spark-Benutzeroberfläche.

  3. Zeigen Sie die Zyklen des gerichteten azyklischen Graphen und die Phasen des Auftrags auf der Serverbenutzeroberfläche des Spark-Verlaufs an.

    Screenshot: Zyklus des gerichteten azyklischen Graphen.

Livy-Sitzungsbenutzeroberfläche

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

    Screenshot: Öffnen der Livy-Sitzungsbenutzeroberfläche.

  2. Zeigen Sie die Treiberprotokolle an, indem Sie unter „Protokolle“ auf die Option „Treiber“ klicken.

YARN-Benutzeroberfläche

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

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

  2. Sie können mit derselben Anwendungs-ID den Auftrag nachverfolgen, den Sie kürzlich ausgeführt haben.

  3. Klicken Sie in Yarn auf „Anwendungs-ID“, um die ausführlichen Protokolle des Auftrags anzuzeigen.

    Protokolle anzeigen.

Verweis