Przesyłanie zadań i zarządzanie nimi w klastrze Apache Spark™ w usłudze HDInsight w usłudze AKS
Uwaga
Wycofamy usługę Azure HDInsight w usłudze AKS 31 stycznia 2025 r. Przed 31 stycznia 2025 r. należy przeprowadzić migrację obciążeń do usługi Microsoft Fabric lub równoważnego produktu platformy Azure, aby uniknąć nagłego zakończenia obciążeń. Pozostałe klastry w ramach subskrypcji zostaną zatrzymane i usunięte z hosta.
Tylko podstawowa pomoc techniczna będzie dostępna do daty wycofania.
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
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.
Na stronie internetowej jupyter wybierz pozycję Nowy > PySpark, aby utworzyć notes.
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.
Wklej następujący kod w pustej komórce notesu Jupyter Notebook, a następnie naciśnij SHIFT + ENTER, aby uruchomić kod. Zobacz tutaj , aby uzyskać więcej kontrolek w programie Jupyter.
%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'])
Wykreślij wykres z osiami X i Y
W tym samym notesie wklej następujący kod w pustej komórce notesu Jupyter Notebook, a następnie naciśnij SHIFT + ENTER , aby uruchomić kod.
%matplotlib inline import pandas as pd import matplotlib.pyplot as plt plt.plot(age_series,salary_series) plt.show()
Zapisywanie notesu
Na pasku menu notesu przejdź do pozycji Plik > Zapisz i Punkt kontrolny.
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.
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
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.
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.
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'])
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:
Wyjście:
Korzystanie z zadań przesyłania platformy Spark
Utwórz plik przy użyciu następującego polecenia "#vim samplefile.py"
To polecenie otwiera plik vim
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'])
Zapisz plik przy użyciu następującej metody.
- Naciśnij przycisk Ucieczka
- Wprowadź polecenie
:wq
Uruchom następujące polecenie, aby uruchomić zadanie.
/spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py
Monitorowanie zapytań w klastrze Apache Spark w usłudze HDInsight w usłudze AKS
Interfejs użytkownika historii platformy Spark
Kliknij interfejs użytkownika serwera historii platformy Spark na karcie Przegląd.
Wybierz ostatnie uruchomienie z interfejsu użytkownika przy użyciu tego samego identyfikatora aplikacji.
Wyświetl cykle skierowanego grafu Acyklicznego i etapy zadania w interfejsie użytkownika serwera historii platformy Spark.
Interfejs użytkownika sesji usługi Livy
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
Wyświetl dzienniki sterowników, klikając opcję sterownika w obszarze dzienników.
Interfejs użytkownika usługi Yarn
Na karcie Przegląd kliknij pozycję Yarn i otwórz interfejs użytkownika usługi Yarn.
Zadanie, które zostało ostatnio uruchomione, można śledzić według tego samego identyfikatora aplikacji.
Kliknij identyfikator aplikacji w usłudze Yarn, aby wyświetlić szczegółowe dzienniki zadania.
Odwołanie
- Nazwy projektów apache, Apache Spark, Spark i skojarzone z nimi nazwy projektów typu open source są znakami towarowymi platformy Apache Software Foundation (ASF).