Dela via


Skicka och hantera jobb i ett Apache Spark-kluster™ i HDInsight på AKS

Kommentar

Vi drar tillbaka Azure HDInsight på AKS den 31 januari 2025. Före den 31 januari 2025 måste du migrera dina arbetsbelastningar till Microsoft Fabric eller en motsvarande Azure-produkt för att undvika plötsliga uppsägningar av dina arbetsbelastningar. Återstående kluster i din prenumeration stoppas och tas bort från värden.

Endast grundläggande stöd kommer att vara tillgängligt fram till datumet för pensionering.

Viktigt!

Den här funktionen finns i förhandsgranskning. De kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure innehåller fler juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet. Information om den här specifika förhandsversionen finns i Azure HDInsight på AKS-förhandsversionsinformation. Om du vill ha frågor eller funktionsförslag skickar du en begäran på AskHDInsight med informationen och följer oss för fler uppdateringar i Azure HDInsight Community.

När klustret har skapats kan användaren använda olika gränssnitt för att skicka och hantera jobb genom att

  • använda Jupyter
  • använda Zeppelin
  • använda ssh (spark-submit)

Använda Jupyter

Förutsättningar

Ett Apache Spark-kluster™ i HDInsight på AKS. Mer information finns i Skapa ett Apache Spark-kluster.

Jupyter Notebook är en interaktiv anteckningsboksmiljö som stöder flera olika datorspråk.

Skapa en Jupyter Notebook

  1. Gå till Apache Spark-klustersidan™ och öppna fliken Översikt . Klicka på Jupyter. Du uppmanas att autentisera och öppna Jupyter-webbsidan.

    Skärmbild av hur du väljer Jupyter Notebook.

  2. På Jupyter-webbsidan väljer du Ny > PySpark för att skapa en notebook-fil.

    Skärmbild av den nya PySpark-sidan.

    En ny notebook-fil har skapats och öppnats med namnet Untitled(Untitled.ipynb).

    Kommentar

    Genom att använda PySpark eller Python 3-kerneln för att skapa en notebook-fil skapas spark-sessionen automatiskt åt dig när du kör den första kodcellen. Du behöver inte uttryckligen skapa sessionen.

  3. Klistra in följande kod i en tom cell i Jupyter Notebook och tryck sedan på SKIFT + RETUR för att köra koden. Mer information om Jupyter finns här .

    Skärmbild av PySpark-sidan med innehåll.

    %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. Rita ett diagram med Lön och ålder som X- och Y-axlarna

  5. I samma notebook-fil klistrar du in följande kod i en tom cell i Jupyter Notebook och trycker sedan på SKIFT + RETUR för att köra koden.

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

    Skärmbild av grafutdata.

Spara anteckningsboken

  1. Från menyraden för notebook-filer går du till Spara fil > och Kontrollpunkt.

  2. Stäng anteckningsboken för att frigöra klusterresurserna: från menyraden för notebook-filer går du till Arkivstängning > och Stoppa. Du kan också köra någon av notebook-filerna under exempelmappen.

    Skärmbild av hur du sparar anteckningsböckerna.

Använda Apache Zeppelin-anteckningsböcker

Apache Spark-kluster i HDInsight på AKS innehåller Apache Zeppelin-notebook-filer. Använd notebook-filerna för att köra Apache Spark-jobb. I den här artikeln får du lära dig hur du använder Zeppelin-notebook-filen i ett HDInsight på AKS-kluster.

Förutsättningar

Ett Apache Spark-kluster i HDInsight på AKS. Anvisningar finns i Skapa ett Apache Spark-kluster.

Starta en Apache Zeppelin-anteckningsbok

  1. Gå till översiktssidan för Apache Spark-klustret och välj Zeppelin-anteckningsbok från klusterinstrumentpaneler. Den uppmanar till att autentisera och öppna Zeppelin-sidan.

    Skärmbild av hur du väljer Zeppelin.

  2. Skapa en ny anteckningsbok. Gå till Anteckningsbok > Skapa ny anteckning i rubrikfönstret. Kontrollera att notebook-huvudet visar en ansluten status. Den anger en grön punkt i det övre högra hörnet.

    Skärmbild av hur du skapar zeppelin Notebook.

  3. Kör följande kod i 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'])
    
  4. Välj knappen Spela upp för stycket för att köra kodfragmentet. Statusen till höger i stycket ska gå från KLAR, VÄNTAR, KÖRS till KLAR. Utdata visas längst ned i samma stycke. Skärmbilden ser ut som följande bild:

    Skärmbild av hur du kör Zeppelin Notebook.

    Utdata:

    Skärmbild av Zeppelin Notebook-utdata.

Använda Spark-skicka jobb

  1. Skapa en fil med hjälp av följande kommando "#vim samplefile.py"

  2. Det här kommandot öppnar vim-filen

  3. Klistra in följande kod i vim-filen

    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. Spara filen med följande metod.

    1. Tryck på Escape-knappen
    2. Ange kommandot :wq
  5. Kör följande kommando för att köra jobbet.

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

    Skärmbild som visar hur du kör Spark-sändningsjobbet.

Övervaka frågor på ett Apache Spark-kluster i HDInsight på AKS

Användargränssnitt för Spark-historik

  1. Klicka på Användargränssnittet för Spark-historikservern från översiktsfliken.

    Skärmbild som visar Spark-användargränssnittet.

  2. Välj den senaste körningen från användargränssnittet med samma program-ID.

    Skärmbild som visar hur du kör Spark-användargränssnittet.

  3. Visa de riktade Acyclic Graph-cyklerna och stegen i jobbet i Spark-historikserverns användargränssnitt.

    Skärmbild av DAG-cykeln.

Användargränssnitt för Livy-session

  1. Om du vill öppna användargränssnittet för Livy-sessionen skriver du följande kommando i webbläsaren https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui

    Skärmbild av hur du öppnar användargränssnittet för Livy-sessionen.

  2. Visa drivrutinsloggarna genom att klicka på drivrutinsalternativet under loggar.

Yarn-användargränssnitt

  1. På fliken Översikt klickar du på Yarn och öppnar yarn-användargränssnittet.

    Skärmbild av hur du väljer Yarn UI.

  2. Du kan spåra jobbet som du nyligen körde med samma program-ID.

  3. Klicka på program-ID:t i Yarn för att visa detaljerade loggar för jobbet.

    Visa loggar.

Referens

  • Apache, Apache Spark, Spark och associerade öppen källkod projektnamn är varumärken som tillhör Apache Software Foundation (ASF).