Tutorial: Criar um aplicativo Apache Spark com IntelliJ usando um espaço de trabalho Synapse
Este tutorial mostra como usar o plug-in do Kit de Ferramentas do Azure para IntelliJ para desenvolver aplicativos Apache Spark, que são escritos em Scala, e enviá-los para um pool Apache Spark sem servidor diretamente do ambiente de desenvolvimento integrado (IDE) IntelliJ. Você pode usar o plug-in de algumas maneiras:
- Desenvolva e envie um aplicativo Scala Spark em um pool Spark.
- Acesse seus recursos de pools do Spark.
- Desenvolva e execute um aplicativo Scala Spark localmente.
Neste tutorial, irá aprender a:
- Usar o plug-in do Kit de Ferramentas do Azure para IntelliJ
- Desenvolver aplicações Apache Spark
- Submeter candidatura a Spark pools
Pré-requisitos
Versão da comunidade IntelliJ IDEA.
Plug-in do kit de ferramentas do Azure 3.27.0-2019.2 – Instalar a partir do repositório de plug-ins do IntelliJ
Scala Plugin – Instale a partir do repositório de plug-ins IntelliJ.
O pré-requisito a seguir é apenas para usuários do Windows:
Enquanto estiver executando o aplicativo Spark Scala local em um computador Windows, você pode obter uma exceção, conforme explicado no SPARK-2356. A exceção ocorre porque WinUtils.exe está faltando no Windows. Para resolver esse erro, baixe o executável WinUtils para um local como C:\WinUtils\bin. Em seguida, adicione a variável de ambiente HADOOP_HOME e defina o valor da variável como C:\WinUtils.
Criar um aplicativo Spark Scala para um pool do Spark
Inicie o IntelliJ IDEA e selecione Criar novo projeto para abrir a janela Novo projeto .
Selecione Apache Spark/HDInsight no painel esquerdo.
Selecione Spark Project with Samples(Scala) na janela principal.
Na lista suspensa Ferramenta de compilação, selecione um dos seguintes tipos:
- Suporte ao assistente de criação de projetos Maven for Scala.
- SBT para gerenciar as dependências e construir para o projeto Scala.
Selecione Seguinte.
Na janela Novo projeto, forneça as seguintes informações:
Property Description Nome do projeto Introduza um nome. Este tutorial utiliza myApp
.Localização do projeto Insira o local desejado para salvar seu projeto. SDK do projeto Pode estar em branco na sua primeira utilização do IDEA. Selecione Novo... e navegue até o JDK. Versão do Spark O assistente de criação integra a versão adequada para o SDK do Spark e o SDK do Scala. Aqui você pode escolher a versão Spark que você precisa. Selecione Concluir. Pode demorar alguns minutos até que o projeto fique disponível.
O projeto Spark cria automaticamente um artefato para você. Para exibir o artefato, faça o seguinte funcionamento:
a. Na barra de menus, navegue até File>Project Structure....
b. Na janela Estrutura do projeto, selecione Artefatos.
c. Selecione Cancelar depois de visualizar o artefato.
Encontre LogQuery de myApp>src>main>scala>sample>LogQuery. Este tutorial usa o LogQuery para ser executado.
Conecte-se às suas piscinas Spark
Entre na assinatura do Azure para se conectar aos seus pools do Spark.
Inicie sessão na sua subscrição do Azure
Na barra de menus, navegue até Exibir Ferramenta do>Windows>Azure Explorer.
No Azure Explorer, clique com o botão direito do mouse no nó do Azure e selecione Entrar.
Na caixa de diálogo Entrar do Azure, escolha Logon do Dispositivo e selecione Entrar.
Na caixa de diálogo Logon de Dispositivo do Azure, selecione Copiar e Abrir.
Na interface do navegador, cole o código e selecione Avançar.
Insira suas credenciais do Azure e feche o navegador.
Depois de iniciar sessão, a caixa de diálogo Selecionar Subscrições lista todas as subscrições do Azure associadas às credenciais. Selecione a sua subscrição e, em seguida, selecione Selecionar.
No Azure Explorer, expanda Apache Spark no Synapse para exibir os espaços de trabalho que estão em suas assinaturas.
Para visualizar os pools do Spark, você pode expandir ainda mais um espaço de trabalho.
Executar remotamente um aplicativo Spark Scala em um pool do Spark
Depois de criar um aplicativo Scala, você pode executá-lo remotamente.
Abra a janela Executar/Depurar Configurações selecionando o ícone.
Na janela de diálogo Executar/Depurar Configurações, selecione +e, em seguida, selecione Apache Spark no Synapse.
Na janela Executar/Depurar Configurações, forneça os seguintes valores e selecione OK:
Property valor Conjuntos do Apache Spark Selecione os pools do Spark nos quais você deseja executar seu aplicativo. Selecione um artefato para enviar Deixe a configuração padrão. Nome da classe principal O valor padrão é a classe principal do arquivo selecionado. Você pode alterar a classe selecionando as reticências(...) e escolhendo outra classe. Configurações de trabalho Você pode alterar a chave e os valores padrão. Para obter mais informações, consulte Apache Livy REST API. Argumentos de linha de comando Você pode inserir argumentos separados por espaço para a classe principal, se necessário. Frascos referenciados e arquivos referenciados Você pode inserir os caminhos para os Jars e arquivos referenciados, se houver. Você também pode procurar arquivos no sistema de arquivos virtual do Azure, que atualmente oferece suporte apenas ao cluster ADLS Gen2. Para obter mais informações: Configuração do Apache Spark e Como carregar recursos para cluster. Armazenamento de upload de trabalho Expanda para revelar opções adicionais. Tipo de armazenamento Selecione Usar Blob do Azure para carregar ou Usar conta de armazenamento padrão do cluster para carregar na lista suspensa. Conta de Armazenamento Introduza a sua conta de armazenamento. Chave de Armazenamento Introduza a sua chave de armazenamento. Contentor de Armazenamento Selecione seu contêiner de armazenamento na lista suspensa depois que a Conta de Armazenamento e a Chave de Armazenamento forem inseridas. Selecione o ícone SparkJobRun para enviar seu projeto para o pool de faíscas selecionado. A guia Trabalho de faísca remota no cluster exibe o progresso da execução do trabalho na parte inferior. Você pode parar o aplicativo selecionando o botão vermelho.
Local Executar/Depurar aplicativos Apache Spark
Você pode seguir as instruções abaixo para configurar sua execução local e depuração local para seu trabalho do Apache Spark.
Cenário 1: Executar localmente
Abra a caixa de diálogo Executar/Depurar configurações , selecione o sinal de adição (+). Em seguida, selecione a opção Apache Spark on Synapse . Insira as informações para Nome, Nome da classe principal para salvar.
- As variáveis de ambiente e WinUtils.exe Localização são apenas para usuários do Windows.
- Variáveis de ambiente: A variável de ambiente do sistema pode ser detetada automaticamente se você a tiver definido antes e não for necessário adicioná-la manualmente.
- WinUtils.exe Local: Você pode especificar o local do WinUtils selecionando o ícone de pasta à direita.
Em seguida, selecione o botão de reprodução local.
Uma vez concluída a execução local, se o script incluir saída, você poderá verificar o arquivo de saída a partir do padrão de dados>.
Cenário 2: Fazer depuração local
Abra o script LogQuery , defina pontos de interrupção.
Selecione o ícone de depuração local para fazer a depuração local.
Acessar e gerenciar o Synapse Workspace
Você pode executar diferentes operações no Azure Explorer dentro do Kit de Ferramentas do Azure para IntelliJ. Na barra de menus, navegue até Exibir Ferramenta do>Windows>Azure Explorer.
Iniciar a área de trabalho
No Azure Explorer, navegue até Apache Spark no Synapse e expanda-o.
Clique com o botão direito do mouse em um espaço de trabalho e selecione Iniciar espaço de trabalho, o site será aberto.
Consola de faíscas
Você pode executar o Spark Local Console (Scala) ou o Spark Livy Interactive Session Console (Scala).
Console local do Spark (Scala)
Certifique-se de que satisfez o pré-requisito WINUTILS.EXE.
Na barra de menus, navegue até Executar>editar configurações....
Na janela Executar/Depurar Configurações, no painel esquerdo, navegue até Apache Spark on Synapse>[Spark on Synapse] myApp.
Na janela principal, selecione a guia Executar localmente.
Forneça os seguintes valores e selecione OK:
Property valor Variáveis de ambiente Verifique se o valor para HADOOP_HOME está correto. WINUTILS.exe localização Verifique se o caminho está correto. No Project, navegue até myApp>src>main>scala>myApp.
Na barra de menus, navegue até Tools>Spark console>Run Spark Local Console(Scala).
Em seguida, duas caixas de diálogo podem ser exibidas para perguntar se você deseja corrigir automaticamente as dependências. Em caso afirmativo, selecione Correção automática.
O console deve ser semelhante à imagem abaixo. Na janela da consola, escreva
sc.appName
e, em seguida, prima ctrl+Enter. O resultado será mostrado. Você pode parar o console local selecionando o botão vermelho.
Console de sessão interativo Spark Livy (Scala)
Só é suportado no IntelliJ 2018.2 e 2018.3.
Na barra de menus, navegue até Executar>editar configurações....
Na janela Executar/Depurar configurações, no painel esquerdo, navegue até Apache Spark on synapse>[Spark on synapse] myApp.
Na janela principal, selecione a guia Executar remotamente no cluster .
Forneça os seguintes valores e selecione OK:
Property valor Nome da classe principal Selecione o nome da classe principal. Conjuntos do Apache Spark Selecione os pools do Spark nos quais você deseja executar seu aplicativo. No Project, navegue até myApp>src>main>scala>myApp.
Na barra de menus, navegue até Tools>Spark console>Run Spark Livy Interactive Session Console(Scala).
O console deve ser semelhante à imagem abaixo. Na janela da consola, escreva
sc.appName
e, em seguida, prima ctrl+Enter. O resultado será mostrado. Você pode parar o console local selecionando o botão vermelho.
Enviar seleção para o console do Spark
Você pode querer ver o resultado do script enviando algum código para o console local ou Livy Interactive Session Console (Scala). Para fazer isso, você pode realçar algum código no arquivo Scala e, em seguida, clique com o botão direito do mouse em Enviar seleção para o console do Spark. O código selecionado será enviado para o console e será feito. O resultado será exibido após o código no console. O console verificará os erros existentes.