Отправка заданий и управление ими в кластере Apache Spark™ в HDInsight в AKS
Важный
Azure HDInsight на AKS было прекращено 31 января 2025 г. Узнайте больше о из этого объявления.
Необходимо перенести рабочие нагрузки в Microsoft Fabric или эквивалентный продукт Azure, чтобы избежать резкого завершения рабочих нагрузок.
Важный
Эта функция сейчас доступна в предварительной версии. Дополнительные условия использования для предварительных версий Microsoft Azure включают дополнительные юридические термины, применимые к функциям Azure, которые находятся в бета-версии, в предварительной версии или в противном случае еще не выпущены в общую доступность. Сведения об этой конкретной предварительной версии см. в Azure HDInsight в предварительной версии AKS. Для вопросов или предложений по улучшениям функций отправьте запрос на AskHDInsight с указанием подробностей и следите за обновлениями в Azure HDInsight Community.
После создания кластера пользователь может использовать различные интерфейсы для отправки заданий и управления ими.
- использование Jupyter
- использование Zeppelin
- с использованием ssh (spark-submit)
Использование Jupyter
Необходимые условия
Кластер Apache Spark™ в HDInsight в AKS. Дополнительные сведения см. в статье Создание кластера Apache Spark.
Jupyter Notebook — это интерактивная среда записной книжки, поддерживающая различные языки программирования.
Создание записной книжки Jupyter
Перейдите на страницу кластера Apache Spark™ и откройте вкладку Обзор. Щелкните Jupyter, чтобы пройти проверку подлинности и открыть веб-страницу Jupyter в браузере.
На веб-странице Jupyter выберите Новый > PySpark, чтобы создать тетрадь.
Новая записная книжка создана и открыта с именем
Untitled(Untitled.ipynb)
.Заметка
При использовании ядра PySpark или Python 3 для создания записной книжки, сеанс Spark автоматически создается при запуске первой ячейки кода. Не нужно явно создавать сеанс.
Вставьте следующий код в пустую ячейку Jupyter Notebook, а затем нажмите клавиши SHIFT+ ВВОД, чтобы запустить код. См. для получения более подробных элементов управления в 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'])
Постройте график, указав зарплату по оси X и возраст по оси Y.
В том же ноутбуке вставьте следующий код в пустую ячейку Jupyter Notebook, а затем нажмите клавиши SHIFT + ENTER, чтобы запустить код.
%matplotlib inline import pandas as pd import matplotlib.pyplot as plt plt.plot(age_series,salary_series) plt.show()
Сохранение записной книжки
В строке меню записной книжки перейдите к Файлу > Сохранить и Контрольная точка.
Закройте записную книжку, чтобы освободить ресурсы кластера: в строке меню записной книжки перейдите к разделу "Файл > закрыть и остановить". Вы также можете запустить любую из записных книжек в папке examples.
Использование записных книжек Apache Zeppelin
Кластеры Apache Spark в HDInsight на AKS включают записные книжки Apache Zeppelin. Используйте записные книжки для запуска заданий Apache Spark. В этой статье вы узнаете, как использовать записную книжку Zeppelin в HDInsight на кластере AKS.
Необходимые условия
Кластер Apache Spark на базе HDInsight в среде AKS. Инструкции см. в статье Создание кластера Apache Spark.
Запуск блокнота Apache Zeppelin
Перейдите на страницу обзора кластера Apache Spark и выберите записную книжку Zeppelin на панели мониторинга кластера. Система запрашивает аутентификацию и открытие страницы Zeppelin.
Создайте записную книжку. На панели заголовка выберите записную книжку > и нажмите "Создать новую заметку". Убедитесь, что заголовок записной книжки отображает состояние подключения. Он обозначает зеленую точку в правом верхнем углу.
Выполните следующий код в Записной книжке 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'])
Нажмите кнопку «Воспроизвести», чтобы запустить фрагмент кода для абзаца. Состояние в правом углу строки абзаца должно изменяться с READY, PENDING, RUNNING до FINISHED. Выходные данные отображаются в нижней части того же абзаца. Снимок экрана выглядит следующим образом:
Выпуск:
Использование заданий с использованием Spark
Создайте файл с помощью следующей команды "#vim samplefile.py"
Эта команда открывает файл vim
Вставьте следующий код в файл 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'])
Сохраните файл с помощью следующего метода.
- Нажмите кнопку Escape
- Введите команду
:wq
Выполните следующую команду, чтобы запустить задание.
/spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py
Мониторинг запросов к кластеру Apache Spark в HDInsight в AKS
Интерфейс истории Spark
Щелкните по интерфейсу сервера истории Spark на вкладке обзора.
Выберите последний запуск из пользовательского интерфейса с помощью того же идентификатора приложения.
Посмотрите направленный ациклический граф и этапы задания в интерфейсе сервера истории Spark.
Пользовательский интерфейс сеанса Livy
Чтобы открыть пользовательский интерфейс сеанса Livy, введите следующую команду в браузере
https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui
Просмотрите журналы драйверов, выбрав опцию драйвера, доступную в разделе журналов.
пользовательского интерфейса Yarn
На вкладке "Обзор" щелкните Yarn и откройте пользовательский интерфейс Yarn.
Вы можете отслеживать задание, которое вы недавно выполнили с помощью того же идентификатора приложения.
Щелкните идентификатор приложения в Yarn, чтобы просмотреть подробные журналы задания.
Ссылка
- Имена проектов Apache, Apache Spark, Spark и связанных с ними проектов с открытым исходным кодом являются товарными знакамиApache Software Foundation (ASF).