Przesyłanie zadań i zarządzanie nimi w klastrze Apache Spark™ w usłudze HDInsight w usłudze AKS

Ważne

Ta funkcja jest aktualnie dostępna jako funkcja podglądu. Dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure obejmują więcej warunków prawnych, które dotyczą funkcji platformy Azure, które znajdują się w wersji beta, w wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej. Aby uzyskać informacje o tej konkretnej wersji zapoznawczej, zobacz Informacje o wersji zapoznawczej usługi Azure HDInsight w usłudze AKS. W przypadku pytań lub sugestii dotyczących funkcji prześlij żądanie w usłudze AskHDInsight , aby uzyskać szczegółowe informacje i postępuj zgodnie z nami, aby uzyskać więcej aktualizacji w społeczności usługi Azure HDInsight.

Po utworzeniu klastra użytkownik może przesyłać zadania i zarządzać nimi za pomocą różnych interfejsów

  • korzystanie z programu Jupyter
  • korzystanie zeppelin
  • korzystanie z protokołu ssh (spark-submit)

Korzystanie z programu Jupyter

Wymagania wstępne

Klaster Apache Spark™ w usłudze HDInsight w usłudze AKS. Aby uzyskać więcej informacji, zobacz Tworzenie klastra Apache Spark.

Jupyter Notebook to interakcyjne środowisko notesu, które obsługuje różne języki programowania.

Tworzenie notesu Jupyter

  1. Przejdź do strony klastra Apache Spark™ i otwórz kartę Przegląd . Kliknij pozycję Jupyter, a następnie poproś o uwierzytelnienie i otwarcie strony internetowej Jupyter.

    Zrzut ekranu przedstawiający sposób wybierania notesu Jupyter.

  2. Na stronie internetowej jupyter wybierz pozycję Nowy > PySpark, aby utworzyć notes.

    Zrzut ekranu przedstawiający nową stronę PySpark.

    Utworzony i otwarty nowy notes o nazwie Untitled(Untitled.ipynb).

    Uwaga

    Korzystając z narzędzia PySpark lub jądra języka Python 3 do utworzenia notesu, sesja platformy Spark jest tworzona automatycznie podczas uruchamiania pierwszej komórki kodu. Nie jest konieczne jawne tworzenie sesji.

  3. Wklej następujący kod w pustej komórce notesu Jupyter Notebook, a następnie naciśnij klawisze SHIFT + ENTER, aby uruchomić kod. Zobacz tutaj , aby uzyskać więcej kontrolek w programie Jupyter.

    Zrzut ekranu przedstawiający stronę PySpark z zawartością.

    %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. Wykreślij wykres z osiami X i Y

  5. W tym samym notesie wklej następujący kod w pustej komórce notesu Jupyter Notebook, a następnie naciśnij klawisze SHIFT + ENTER , aby uruchomić kod.

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

    Zrzut ekranu przedstawiający dane wyjściowe grafu.

Zapisywanie notesu

  1. Na pasku menu notesu przejdź do pozycji Plik > Zapisz i Punkt kontrolny.

  2. Zamknij notes, aby zwolnić zasoby klastra: na pasku menu notesu przejdź do pozycji Zamknij plik > i zatrzymaj. Możesz również uruchomić dowolny notes w folderze examples.

    Zrzut ekranu przedstawiający sposób zapisywania książek notatek.

Korzystanie z notesów Apache Zeppelin

Klastry Apache Spark w usłudze HDInsight w usłudze AKS obejmują notesy Apache Zeppelin. Użyj notesów do uruchamiania zadań platformy Apache Spark. Z tego artykułu dowiesz się, jak używać notesu Zeppelin w klastrze usługi HDInsight w usłudze AKS.

Wymagania wstępne

Klaster Apache Spark w usłudze HDInsight w usłudze AKS. Aby uzyskać instrukcje, zobacz Tworzenie klastra Apache Spark.

Uruchamianie notesu Apache Zeppelin

  1. Przejdź do strony Przegląd klastra Apache Spark i wybierz pozycję Notes Zeppelin z pulpitów nawigacyjnych klastra. Monituje o uwierzytelnienie i otwarcie strony Zeppelin.

    Zrzut ekranu przedstawiający sposób wybierania rozwiązania Zeppelin.

  2. Utwórz nowy notes. W okienku nagłówka przejdź do pozycji Notes > Utwórz nową notatkę. Upewnij się, że nagłówek notesu zawiera stan połączenia. Oznacza zieloną kropkę w prawym górnym rogu.

    Zrzut ekranu przedstawiający sposób tworzenia notesu zeppelin.

  3. Uruchom następujący kod w notesie Zeppelin:

    %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. Wybierz przycisk Odtwórz akapit, aby uruchomić fragment kodu. Stan w prawym rogu akapitu powinien przechodzić od POZYCJI GOTOWE, OCZEKUJĄCE, URUCHOMIONE na ZAKOŃCZONO. Dane wyjściowe są wyświetlane w dolnej części tego samego akapitu. Zrzut ekranu wygląda jak na poniższej ilustracji:

    Zrzut ekranu przedstawiający sposób uruchamiania notesu Zeppelin.

    Dane wyjściowe:

    Zrzut ekranu przedstawiający dane wyjściowe notesu Zeppelin.

Korzystanie z zadań przesyłania platformy Spark

  1. Utwórz plik przy użyciu następującego polecenia "#vim samplefile.py"

  2. To polecenie otwiera plik vim

  3. Wklej następujący kod do pliku vim

    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. Zapisz plik przy użyciu następującej metody.

    1. Naciśnij przycisk Ucieczka
    2. Wprowadź polecenie :wq
  5. Uruchom następujące polecenie, aby uruchomić zadanie.

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

    Zrzut ekranu przedstawiający sposób uruchamiania zadania przesyłania platformy Spark.

Monitorowanie zapytań w klastrze Apache Spark w usłudze HDInsight w usłudze AKS

Interfejs użytkownika historii platformy Spark

  1. Kliknij interfejs użytkownika serwera historii platformy Spark na karcie Przegląd.

    Zrzut ekranu przedstawiający interfejs użytkownika platformy Spark.

  2. Wybierz ostatnie uruchomienie z interfejsu użytkownika przy użyciu tego samego identyfikatora aplikacji.

    Zrzut ekranu przedstawiający sposób uruchamiania interfejsu użytkownika platformy Spark.

  3. Wyświetl cykle skierowanego grafu Acyklicznego i etapy zadania w interfejsie użytkownika serwera historii platformy Spark.

    Zrzut ekranu przedstawiający cykl DAG.

Interfejs użytkownika sesji usługi Livy

  1. Aby otworzyć interfejs użytkownika sesji usługi Livy, wpisz następujące polecenie w przeglądarce https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui

    Zrzut ekranu przedstawiający sposób otwierania interfejsu użytkownika sesji usługi Livy.

  2. Wyświetl dzienniki sterowników, klikając opcję sterownika w obszarze dzienników.

Interfejs użytkownika usługi Yarn

  1. Na karcie Przegląd kliknij pozycję Yarn i otwórz interfejs użytkownika usługi Yarn.

    Zrzut ekranu przedstawiający sposób wybierania interfejsu użytkownika usługi Yarn.

  2. Zadanie, które zostało ostatnio uruchomione, można śledzić według tego samego identyfikatora aplikacji.

  3. Kliknij identyfikator aplikacji w usłudze Yarn, aby wyświetlić szczegółowe dzienniki zadania.

    Wyświetl dzienniki.

Odwołanie