Tutorial: Criar a definição de tarefas do Apache Spark no Synapse Studio
Este tutorial demonstra como utilizar o Synapse Studio para criar definições de tarefas do Apache Spark e, em seguida, submetê-las para um conjunto do Apache Spark sem servidor.
Este tutorial abrange as seguintes tarefas:
- Criar uma definição de tarefa do Apache Spark para o PySpark (Python)
- Criar uma definição de tarefa do Apache Spark para o Spark (Scala)
- Criar uma definição de tarefa do Apache Spark para o .NET Spark (C#/F#)
- Criar definição de tarefa ao importar um ficheiro JSON
- Exportar um ficheiro de definição de tarefas do Apache Spark para o local
- Submeter uma definição de tarefa do Apache Spark como uma tarefa em lote
- Adicionar uma definição de tarefa do Apache Spark ao pipeline
Pré-requisitos
Antes de começar este tutorial, certifique-se de que cumpre os seguintes requisitos:
- Uma área de trabalho do Azure Synapse Analytics. Para obter instruções, veja Criar uma área de trabalho do Azure Synapse Analytics.
- Um conjunto do Apache Spark sem servidor.
- Uma conta de armazenamento do ADLS Gen2. Tem de ser o Contribuidor de Dados de Blobs de Armazenamento do sistema de ficheiros do ADLS Gen2 com o qual pretende trabalhar. Se não estiver, tem de adicionar a permissão manualmente.
- Se não quiser utilizar o armazenamento predefinido da área de trabalho, ligue a conta de armazenamento do ADLS Gen2 necessária no Synapse Studio.
Criar uma definição de tarefa do Apache Spark para o PySpark (Python)
Nesta secção, vai criar uma definição de tarefa do Apache Spark para o PySpark (Python).
Abra Synapse Studio.
Pode aceder a Ficheiros de exemplo para criar definições de tarefas do Apache Sparkpara transferir ficheiros de exemplo para python.zipe, em seguida, deszipar o pacote comprimido e extrair os ficheiros wordcount.py e shakespeare.txt .
Selecione Dados ->Ligados ->Azure Data Lake Storage Gen2 e carregue wordcount.py e shakespeare.txt para o sistema de ficheiros do ADLS Gen2.
Selecione Programar hub, selecione o ícone "+" e selecione Definição da tarefa do Spark para criar uma nova definição de tarefa do Spark.
Selecione PySpark (Python) na lista pendente Idioma na janela principal da definição da tarefa do Apache Spark.
Preencha as informações da definição da tarefa do Apache Spark.
Propriedade Descrição Nome da definição da tarefa Introduza um nome para a definição da tarefa do Apache Spark. Este nome pode ser atualizado em qualquer altura até ser publicado.
Exemplo:job definition sample
Ficheiro de definição principal O ficheiro principal utilizado para a tarefa. Selecione um ficheiro PY no seu armazenamento. Pode selecionar Carregar ficheiro para carregar o ficheiro para uma conta de armazenamento.
Exemplo:abfss://…/path/to/wordcount.py
Argumentos da linha de comandos Argumentos opcionais para a tarefa.
Exemplo:abfss://…/path/to/shakespeare.txt
abfss://…/path/to/result
Nota: dois argumentos para a definição da tarefa de exemplo são separados por um espaço.Ficheiros de referência Ficheiros adicionais utilizados para referência no ficheiro de definição principal. Pode selecionar Carregar ficheiro para carregar o ficheiro para uma conta de armazenamento. Conjunto do Spark A tarefa será submetida para o conjunto do Apache Spark selecionado. Versão do Spark Versão do Apache Spark que o conjunto do Apache Spark está a executar. Executors Número de executadores a serem fornecidos no conjunto do Apache Spark especificado para a tarefa. Tamanho do executor Número de núcleos e memória a utilizar para executores fornecidos no conjunto do Apache Spark especificado para a tarefa. Tamanho do controlador Número de núcleos e memória a utilizar para o controlador indicado no conjunto do Apache Spark especificado para a tarefa. Configuração do Apache Spark Personalize as configurações ao adicionar propriedades abaixo. Se não adicionar uma propriedade, Azure Synapse utilizará o valor predefinido quando aplicável. Selecione Publicar para guardar a definição da tarefa do Apache Spark.
Criar uma definição de tarefa do Apache Spark para o Apache Spark(Scala)
Nesta secção, vai criar uma definição de tarefa do Apache Spark para o Apache Spark(Scala).
Abra o Azure Synapse Studio.
Pode aceder a Ficheiros de exemplo para criar definições de tarefas do Apache Sparkpara transferir ficheiros de exemplo para scala.zipe, em seguida, deszipar o pacote comprimido e extrair os ficheiros wordcount.jar e shakespeare.txt .
Selecione Dados ->Ligado ->Azure Data Lake Storage Gen2 e carregue wordcount.jar e shakespeare.txt para o sistema de ficheiros do ADLS Gen2.
Selecione Programar hub, selecione o ícone "+" e selecione Definição da tarefa do Spark para criar uma nova definição de tarefa do Spark. (A imagem de exemplo é igual ao passo 4 de Criar uma definição de tarefa do Apache Spark (Python) para PySpark.)
Selecione Spark(Scala) na lista pendente Idioma na janela principal da definição da tarefa do Apache Spark.
Preencha as informações da definição da tarefa do Apache Spark. Pode copiar as informações de exemplo.
Propriedade Descrição Nome da definição da tarefa Introduza um nome para a definição da tarefa do Apache Spark. Este nome pode ser atualizado em qualquer altura até ser publicado.
Exemplo:scala
Ficheiro de definição principal O ficheiro principal utilizado para a tarefa. Selecione um ficheiro JAR no seu armazenamento. Pode selecionar Carregar ficheiro para carregar o ficheiro para uma conta de armazenamento.
Exemplo:abfss://…/path/to/wordcount.jar
Nome da classe principal O identificador completamente qualificado ou a classe principal que está no ficheiro de definição principal.
Exemplo:WordCount
Argumentos da linha de comandos Argumentos opcionais para a tarefa.
Exemplo:abfss://…/path/to/shakespeare.txt
abfss://…/path/to/result
Nota: dois argumentos para a definição da tarefa de exemplo são separados por um espaço.Ficheiros de referência Ficheiros adicionais utilizados para referência no ficheiro de definição principal. Pode selecionar Carregar ficheiro para carregar o ficheiro para uma conta de armazenamento. Conjunto do Spark A tarefa será submetida para o conjunto do Apache Spark selecionado. Versão do Spark Versão do Apache Spark que o conjunto do Apache Spark está a executar. Executors Número de executadores a serem fornecidos no conjunto do Apache Spark especificado para a tarefa. Tamanho do executor Número de núcleos e memória a utilizar para executores fornecidos no conjunto do Apache Spark especificado para a tarefa. Tamanho do controlador Número de núcleos e memória a utilizar para o controlador indicado no conjunto do Apache Spark especificado para a tarefa. Configuração do Apache Spark Personalize as configurações ao adicionar propriedades abaixo. Se não adicionar uma propriedade, Azure Synapse utilizará o valor predefinido quando aplicável. Selecione Publicar para guardar a definição da tarefa do Apache Spark.
Criar uma definição de tarefa do Apache Spark para o .NET Spark(C#/F#)
Nesta secção, vai criar uma definição de tarefa do Apache Spark para .NET Spark(C#/F#).
Abra o Azure Synapse Studio.
Pode aceder a Ficheiros de exemplo para criar definições de tarefas do Apache Spark para transferir ficheiros de exemplo para dotnet.zipe, em seguida, deszipar o pacote comprimido e extrair os ficheiroswordcount.zip e shakespeare.txt .
Selecione Dados -Ligado ->>Azure Data Lake Storage Gen2 e carregue wordcount.zip e shakespeare.txt para o sistema de ficheiros do ADLS Gen2.
Selecione Programar hub, selecione o ícone "+" e selecione Definição da tarefa do Spark para criar uma nova definição de tarefa do Spark. (A imagem de exemplo é igual ao passo 4 de Criar uma definição de tarefa do Apache Spark (Python) para PySpark.)
Selecione .NET Spark(C#/F#) na lista pendente Idioma na janela principal Definição de Tarefas do Apache Spark.
Preencha as informações da Definição de Tarefas do Apache Spark. Pode copiar as informações de exemplo.
Propriedade Descrição Nome da definição da tarefa Introduza um nome para a definição da tarefa do Apache Spark. Este nome pode ser atualizado em qualquer altura até ser publicado.
Exemplo:dotnet
Ficheiro de definição principal O ficheiro principal utilizado para a tarefa. Selecione um ficheiro ZIP que contenha a sua aplicação .NET para Apache Spark (ou seja, o ficheiro executável principal, DLLs que contêm funções definidas pelo utilizador e outros ficheiros necessários) a partir do seu armazenamento. Pode selecionar Carregar ficheiro para carregar o ficheiro para uma conta de armazenamento.
Exemplo:abfss://…/path/to/wordcount.zip
Ficheiro executável principal O ficheiro executável principal no ficheiro ZIP de definição principal.
Exemplo:WordCount
Argumentos da linha de comandos Argumentos opcionais para a tarefa.
Exemplo:abfss://…/path/to/shakespeare.txt
abfss://…/path/to/result
Nota: dois argumentos para a definição da tarefa de exemplo são separados por um espaço.Ficheiros de referência Ficheiros adicionais necessários pelos nós de trabalho para executar a aplicação .NET para Apache Spark que não está incluída no ficheiro ZIP de definição principal (ou seja, jars dependentes, DLLs de função definidas pelo utilizador adicionais e outros ficheiros de configuração). Pode selecionar Carregar ficheiro para carregar o ficheiro para uma conta de armazenamento. Conjunto do Spark A tarefa será submetida para o conjunto do Apache Spark selecionado. Versão do Spark Versão do Apache Spark que o conjunto do Apache Spark está a executar. Executors Número de executadores a serem fornecidos no conjunto do Apache Spark especificado para a tarefa. Tamanho do executor Número de núcleos e memória a utilizar para executores fornecidos no conjunto do Apache Spark especificado para a tarefa. Tamanho do controlador Número de núcleos e memória a utilizar para o controlador indicado no conjunto do Apache Spark especificado para a tarefa. Configuração do Apache Spark Personalize as configurações ao adicionar propriedades abaixo. Se não adicionar uma propriedade, Azure Synapse utilizará o valor predefinido quando aplicável. Selecione Publicar para guardar a definição da tarefa do Apache Spark.
Nota
Para a configuração do Apache Spark, se a definição da tarefa do Apache Spark de configuração do Apache Spark não fizer nada de especial, a configuração predefinida será utilizada ao executar a tarefa.
Criar a definição de tarefa do Apache Spark ao importar um ficheiro JSON
Pode importar um ficheiro JSON local existente para Azure Synapse área de trabalho a partir do menu Ações (...) do Explorador de definições de tarefas do Apache Spark para criar uma nova definição de tarefa do Apache Spark.
A definição da tarefa do Spark é totalmente compatível com a API Livy. Pode adicionar parâmetros adicionais para outras propriedades livy (Livy Docs - API REST (apache.org) no ficheiro JSON local. Também pode especificar os parâmetros relacionados com a configuração do Spark na propriedade de configuração, conforme mostrado abaixo. Em seguida, pode importar o ficheiro JSON de volta para criar uma nova definição de tarefa do Apache Spark para a sua tarefa de lote. JSON de exemplo para importação de definições do Spark:
{
"targetBigDataPool": {
"referenceName": "socdemolarge",
"type": "BigDataPoolReference"
},
"requiredSparkVersion": "2.3",
"language": "scala",
"jobProperties": {
"name": "robinSparkDefinitiontest",
"file": "adl://socdemo-c14.azuredatalakestore.net/users/robinyao/wordcount.jar",
"className": "WordCount",
"args": [
"adl://socdemo-c14.azuredatalakestore.net/users/robinyao/shakespeare.txt"
],
"jars": [],
"files": [],
"conf": {
"spark.dynamicAllocation.enabled": "false",
"spark.dynamicAllocation.minExecutors": "2",
"spark.dynamicAllocation.maxExecutors": "2"
},
"numExecutors": 2,
"executorCores": 8,
"executorMemory": "24g",
"driverCores": 8,
"driverMemory": "24g"
}
}
Exportar um ficheiro de definição de tarefas do Apache Spark existente
Pode exportar ficheiros de definição de tarefas do Apache Spark existentes para o local a partir do menu Ações (...) do Explorador de Ficheiros. Pode atualizar ainda mais o ficheiro JSON para propriedades adicionais do Livy e importá-lo novamente para criar uma nova definição de tarefa, se necessário.
Submeter uma definição de tarefa do Apache Spark como uma tarefa em lote
Depois de criar uma definição de tarefa do Apache Spark, pode submetê-la a um conjunto do Apache Spark. Certifique-se de que é o Contribuidor de Dados de Blobs de Armazenamento do sistema de ficheiros do ADLS Gen2 com o qual pretende trabalhar. Se não estiver, tem de adicionar a permissão manualmente.
Cenário 1: Submeter a definição da tarefa do Apache Spark
Abra uma janela de definição de tarefa do Apache Spark ao selecioná-la.
Selecione o botão Submeter para submeter o projeto para o Conjunto do Apache Spark selecionado. Pode selecionar o separador URL de monitorização do Spark para ver o LogQuery da aplicação Apache Spark.
Cenário 2: Ver o progresso da tarefa do Apache Spark
Selecione Monitorizar e, em seguida, selecione a opção Aplicações do Apache Spark . Pode encontrar a aplicação do Apache Spark submetida.
Em seguida, selecione uma aplicação do Apache Spark, é apresentada a janela de tarefa SparkJobDefinition . Pode ver o progresso da execução da tarefa a partir daqui.
Cenário 3: Verificar o ficheiro de saída
Selecione Dados ->Ligado ->Azure Data Lake Storage Gen2 (hozhaobdbj), abra a pasta de resultados criada anteriormente, pode aceder à pasta de resultados e verificar se a saída foi gerada.
Adicionar uma definição de tarefa do Apache Spark ao pipeline
Nesta secção, vai adicionar uma definição de tarefa do Apache Spark ao pipeline.
Abra uma definição de tarefa existente do Apache Spark.
Selecione o ícone no canto superior direito da definição da tarefa do Apache Spark, selecione Pipeline Existente ou Novo pipeline. Pode consultar a página Pipeline para obter mais informações.
Passos seguintes
Em seguida, pode utilizar o Azure Synapse Studio para criar conjuntos de dados do Power BI e gerir dados do Power BI. Avance para o artigo Ligar uma área de trabalho do Power BI a uma área de trabalho do Synapse para saber mais.