Odesílání a správa úloh v clusteru Apache Spark™ ve službě HDInsight v AKS

Důležité

Tato funkce je aktuálně dostupná jako ukázková verze. Doplňkové podmínky použití pro Microsoft Azure Preview obsahují další právní podmínky, které se vztahují na funkce Azure, které jsou v beta verzi, ve verzi Preview nebo ještě nejsou vydány v obecné dostupnosti. Informace o této konkrétní verzi Preview najdete v tématu Azure HDInsight o službě AKS ve verzi Preview. Pokud máte dotazy nebo návrhy funkcí, odešlete prosím žádost na AskHDInsight s podrobnostmi a sledujte nás o dalších aktualizacích v komunitě Azure HDInsight.

Po vytvoření clusteru může uživatel k odesílání a správě úloh používat různá rozhraní.

  • s využitím Jupyteru
  • pomocí Zeppelinu
  • pomocí ssh (spark-submit)

Použití Jupyteru

Požadavky

Cluster Apache Spark™ ve službě HDInsight v AKS. Další informace najdete v tématu Vytvoření clusteru Apache Spark.

Jupyter Notebook je interaktivní prostředí poznámkového bloku, které podporuje různé programovací jazyky.

Vytvoříte poznámkový blok Jupyter Notebooks.

  1. Přejděte na stránku clusteru Apache Spark™ a otevřete kartu Přehled . Klikněte na Jupyter, zobrazí se žádost o ověření a otevření webové stránky Jupyter.

    Snímek obrazovky s výběrem poznámkového bloku Jupyter

  2. Na webové stránce Jupyter vyberte Nový > PySpark a vytvořte poznámkový blok.

    Snímek obrazovky s novou stránkou PySpark

    Vytvořil a otevřel se nový poznámkový blok s názvem Untitled(Untitled.ipynb).

    Poznámka:

    Když k vytvoření poznámkového bloku použijete jádro PySpark nebo Python 3, relace Sparku se automaticky vytvoří při spuštění první buňky kódu. Není potřeba relaci vytvářet explicitně.

  3. Do prázdné buňky poznámkového bloku Jupyter Notebook vložte následující kód a stisknutím kombinace kláves SHIFT+ENTER kód spusťte. Další ovládací prvky v Jupyteru najdete tady .

    Snímek obrazovky se stránkou PySpark s obsahem

    %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. Vykreslení grafu s osou X a Y s platem a věkem

  5. Ve stejném poznámkovém bloku vložte následující kód do prázdné buňky jupyter Notebook a stisknutím shift + ENTER kód spusťte.

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

    Snímek obrazovky s výstupem grafu

Uložení poznámkového bloku

  1. V řádku nabídek poznámkového bloku přejděte na Příkaz Uložit > soubor a Kontrolní bod.

  2. Vypněte poznámkový blok a uvolněte prostředky clusteru: z řádku nabídek poznámkového bloku přejděte na > Soubor Zavřít a zastavit. Můžete také spustit libovolný poznámkový blok ve složce s příklady.

    Snímek obrazovky znázorňuje, jak uložit poznámkové knihy

Použití poznámkových bloků Apache Zeppelin

Clustery Apache Spark ve službě HDInsight v AKS zahrnují poznámkové bloky Apache Zeppelin. Pomocí poznámkových bloků můžete spouštět úlohy Apache Sparku. V tomto článku se dozvíte, jak používat poznámkový blok Zeppelin ve službě HDInsight v clusteru AKS.

Požadavky

Cluster Apache Spark ve službě HDInsight v AKS. Pokyny najdete v tématu Vytvoření clusteru Apache Spark.

Spuštění poznámkového bloku Apache Zeppelin

  1. Přejděte na stránku Přehled clusteru Apache Spark a z řídicích panelů clusteru vyberte Poznámkový blok Zeppelin. Zobrazí výzvu k ověření a otevření stránky Zeppelin.

    Snímek obrazovky znázorňuje, jak vybrat Zeppelin

  2. Vytvořte nový poznámkový blok. V podokně záhlaví přejděte do poznámkového bloku > Vytvořit novou poznámku. Ujistěte se, že záhlaví poznámkového bloku zobrazuje stav připojení. Označuje zelenou tečku v pravém horním rohu.

    Snímek obrazovky znázorňuje, jak vytvořit poznámkový blok zeppelin

  3. V poznámkovém bloku Zeppelin spusťte následující kód:

    %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. Vyberte tlačítko Přehrát pro odstavec a spusťte fragment kódu. Stav v pravém rohu odstavce by měl pocházet od READY, PENDING, RUNNING to FINISHED. Výstup se zobrazí v dolní části stejného odstavce. Snímek obrazovky vypadá jako na následujícím obrázku:

    Snímek obrazovky znázorňuje, jak spustit poznámkový blok Zeppelin

    Výstup:

    Snímek obrazovky s výstupem poznámkového bloku Zeppelin

Použití úloh odesílání Sparku

  1. Pomocí následujícího příkazu #vim samplefile.py vytvořte soubor.

  2. Tento příkaz otevře soubor vim.

  3. Do souboru vim vložte následující kód.

    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. Uložte soubor pomocí následující metody.

    1. Stiskněte řídicí tlačítko.
    2. Zadejte příkaz. :wq
  5. Spuštěním následujícího příkazu spusťte úlohu.

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

    Snímek obrazovky znázorňující, jak spustit úlohu odeslání Sparku

Monitorování dotazů v clusteru Apache Spark ve službě HDInsight v AKS

Uživatelské rozhraní historie Sparku

  1. Na kartě Přehled klikněte na uživatelské rozhraní serveru historie Sparku.

    Snímek obrazovky s uživatelským rozhraním Sparku

  2. Vyberte nedávné spuštění z uživatelského rozhraní pomocí stejného ID aplikace.

    Snímek obrazovky znázorňující, jak spustit uživatelské rozhraní Sparku

  3. Prohlédněte si cyklické cykly a fáze úlohy v uživatelském rozhraní serveru Historie Sparku.

    Snímek obrazovky s cyklem DAG

Uživatelské rozhraní relace Livy

  1. Pokud chcete otevřít uživatelské rozhraní relace Livy, zadejte do prohlížeče následující příkaz. https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui

    Snímek obrazovky znázorňuje, jak otevřít uživatelské rozhraní relace Livy

  2. Kliknutím na možnost ovladače v části Protokoly zobrazte protokoly ovladačů.

Uživatelské rozhraní Yarn

  1. Na kartě Přehled klikněte na Yarn a otevřete uživatelské rozhraní Yarn.

    Snímek obrazovky s výběrem uživatelského rozhraní Yarn

  2. Úlohu, kterou jste nedávno spustili, můžete sledovat podle stejného ID aplikace.

  3. Kliknutím na ID aplikace v Yarn zobrazíte podrobné protokoly úlohy.

    Zobrazit protokoly.

Reference