Enviar e gerenciar trabalhos em um cluster Apache Spark™ no HDInsight no AKS
Importante
O Azure HDInsight no AKS foi desativado em 31 de janeiro de 2025. Saiba mais com este anúncio.
Você precisa migrar suas cargas de trabalho para Microsoft Fabric ou um produto equivalente do Azure para evitar o encerramento abrupto de suas cargas de trabalho.
Importante
Esta funcionalidade está atualmente em pré-visualização. Os Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure incluem mais termos legais que se aplicam a funcionalidades do Azure que estão em versão beta, em pré-visualização ou ainda não disponíveis para disponibilidade geral. Para obter informações sobre esta pré-visualização específica, consulte informações de pré-visualização do Azure HDInsight no AKS. Para perguntas ou sugestões de funcionalidades, envie uma solicitação em AskHDInsight com os detalhes e siga-nos para obter mais atualizações na Comunidade do Azure HDInsight .
Depois de criado o cluster, o utilizador pode usar várias interfaces para enviar e gerir trabalhos.
- usando Jupyter
- utilizando Zeppelin
- Usando SSH (Spark-Submit)
Usando o Jupyter
Pré-requisitos
Um cluster Apache Spark™ no HDInsight em execução no AKS. Para obter mais informações, consulte Criar um cluster do Apache Spark.
Jupyter Notebook é um ambiente de notebook interativo que suporta várias linguagens de programação.
Criar um Jupyter Notebook
Navegue até a página do cluster Apache Spark™ e abra a guia Visão Geral. Clique em Jupyter, e será solicitado que você se autentique para abrir a página da web do Jupyter.
Na página da Web do Jupyter, selecione Novo > PySpark para criar um bloco de anotações.
Um novo bloco de notas criado e aberto com o nome
Untitled(Untitled.ipynb)
.Observação
Usando o PySpark ou o kernel Python 3 para criar um bloco de anotações, a sessão de faísca é criada automaticamente para você quando você executa a primeira célula de código. Não é necessário criar explicitamente a sessão.
Cole o código a seguir em uma célula vazia do Jupyter Notebook e pressione SHIFT + ENTER para executar o código. Veja aqui para obter mais controles sobre o 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'])
Plote um gráfico com Salário e Idade como os eixos X e Y
No mesmo bloco de notas, cole o seguinte código numa célula vazia do Jupyter Notebook e, em seguida, prima SHIFT + ENTER para executar o código.
%matplotlib inline import pandas as pd import matplotlib.pyplot as plt plt.plot(age_series,salary_series) plt.show()
Guardar o Bloco de Notas
Na barra de menus do bloco de anotações, navegue até Arquivo > Salvar e Ponto de verificação.
Desligue o notebook para liberar os recursos do cluster: na barra de menus do notebook, navegue até Arquivo > Fechar e Interromper. Você também pode executar qualquer um dos blocos de anotações na pasta de exemplos.
Usando os notebooks Apache Zeppelin
Os clusters Apache Spark em HDInsight em AKS incluem os notebooks Apache Zeppelin. Use os blocos de anotações para executar trabalhos do Apache Spark. Neste artigo, você aprenderá a usar o notebook Zeppelin em um cluster HDInsight no AKS.
Pré-requisitos
Um cluster Apache Spark no HDInsight em AKS. Para obter instruções, consulte Criar um cluster do Apache Spark.
Iniciar um notebook Apache Zeppelin
Navegue até a página Visão geral do cluster Apache Spark e selecione o bloco de anotações Zeppelin nos painéis do cluster. Ele solicita autenticar e abrir a página do Zeppelin.
Crie um novo bloco de notas. No painel de cabeçalho, navegue até Bloco de Anotações > Criar nova nota. Confirme que o cabeçalho do bloco de notas mostra um estado conectado. Denota um ponto verde no canto superior direito.
Execute o seguinte código no 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'])
Selecione o botão Reproduzir do parágrafo para executar o trecho. O status no canto direito do parágrafo deve progredir de PRONTO, PENDENTE, EM EXECUÇÃO para CONCLUÍDO. A saída aparece na parte inferior do mesmo parágrafo. A captura de tela se parece com a seguinte imagem:
Saída:
Usando o Spark enviar trabalhos
Crie um ficheiro utilizando o seguinte comando '#vim samplefile.py'
Este comando abre o arquivo vim
Cole o seguinte código no arquivo 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'])
Salve o arquivo com o seguinte método.
- Pressione o botão Escape
- Digite o comando
:wq
Execute o seguinte comando para executar o trabalho.
/spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py
Monitorar consultas num cluster Apache Spark no HDInsight em AKS
Interface do usuário do Spark History
Clique na UI do Spark History Server na guia Visão geral.
Selecione a execução recente na interface do usuário usando a mesma ID do aplicativo.
Exiba os ciclos do Gráfico Acíclico Direcionado e os estágios do trabalho na interface do usuário do servidor Spark History.
UI da sessão Livy
Para abrir a interface do usuário da sessão Livy, digite o seguinte comando no navegador
https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui
Veja os logs do driver clicando na opção de driver em logs.
Yarn UI
Na guia Visão geral, clique em Yarn e abra a interface do usuário do Yarn.
Você pode acompanhar o trabalho executado recentemente pelo mesmo ID de aplicativo.
Clique no ID do aplicativo no Yarn para visualizar os logs detalhados do trabalho.
Referência
- Apache, Apache Spark, Spark e nomes de projetos de código aberto associados são marcas comerciais da Apache Software Foundation (ASF).