Partilhar via


Usar o Kit de Ferramentas do Azure para Eclipse para criar aplicativos Apache Spark para um cluster HDInsight

Use as Ferramentas do HDInsight no Kit de Ferramentas do Azure para Eclipse para desenvolver aplicações Apache Spark escritas em Scala e enviá-las para um cluster do Azure HDInsight Spark, diretamente do IDE do Eclipse. Você pode usar o plug-in Ferramentas do HDInsight de algumas maneiras diferentes:

  • Para desenvolver e enviar um aplicativo Scala Spark em um cluster HDInsight Spark.
  • Para acessar seus recursos de cluster do Azure HDInsight Spark.
  • Para desenvolver e executar um aplicativo Scala Spark localmente.

Pré-requisitos

Instalar plug-ins necessários

Instalar o Pacote de Ferramentas Azure para o Eclipse

Para obter instruções de instalação, consulte Instalando o Kit de Ferramentas do Azure para Eclipse.

Instalar o plug-in Scala

Quando você abre o Eclipse, as Ferramentas do HDInsight detetam automaticamente se você instalou o plug-in Scala. Selecione OK para continuar e siga as instruções para instalar o plug-in a partir do Eclipse Marketplace. Reinicie o IDE após a conclusão da instalação.

Instalação automática do plug-in Scala.

Confirmar plug-ins

  1. Navegue até Ajuda>Eclipse Marketplace....

  2. Selecione a guia Instalado.

  3. Você deve ver pelo menos:

    • Azure Toolkit for Eclipse <versão>.
    • Scala IDE <versão>.

Inicie sessão na sua subscrição do Azure

  1. Inicie o Eclipse IDE.

  2. Navegue até janela>Mostrar vista>Outro...>Iniciar sessão..

  3. Na caixa de diálogo Exibição, navegue até Azure>Azure Explorere selecione Abrir.

    Apache Spark Eclipse mostrar vista.

  4. No Azure Explorer, clique com o botão direito do mouse no nó Azure e selecione Entrar.

  5. Na caixa de diálogo de Entrada do Azure, escolha o método de autenticação, selecione Entrare conclua o processo de entrada.

    Apache Spark Eclipse Azure Sign.

  6. Depois de iniciar sessão, a caixa de diálogo As Suas Subscrições lista todas as subscrições do Azure associadas às credenciais. Pressione Select para fechar a caixa de diálogo.

    Caixa de Diálogo Selecionar Assinaturas.

  7. Na Azure Explorer, navegue até Azure>HDInsight para ver os clusters do HDInsight Spark sob a sua assinatura.

    clusters do HDInsight Spark no Azure Explorer3.

  8. Você pode expandir ainda mais um nó de nome de cluster para ver os recursos (por exemplo, contas de armazenamento) associados ao cluster.

    Expandir um nome de cluster para ver recursos.

Você pode vincular um cluster normal usando o nome de usuário gerenciado do Ambari. Da mesma forma, para um cluster HDInsight associado a um domínio, você pode vincular usando o domínio e o nome de usuário, como user1@contoso.com.

  1. No Azure Explorer, clique com o botão direito do rato em HDInsight, e selecione Vincular um cluster.

    menu de cluster de links do Azure Explorer.

  2. Introduza Nome do Cluster, Nome de Utilizadore Palavra-passee, em seguida, selecione OK. Opcionalmente, insira Conta de Armazenamento, Chave de Armazenamento e selecione Contêiner de Armazenamento para que o explorador de armazenamento funcione na visualização em árvore à esquerda

    caixa de diálogo Vincular novo cluster HDInsight.

    Observação

    Usamos a chave de armazenamento vinculada, o nome de utilizador e a palavra-passe se o cluster estiver ligado a uma subscrição do Azure e se o cluster estiver vinculado. contas de armazenamento do Azure Explorer.

    Para o utilizador apenas do teclado, quando o foco atual estiver na Chave de Armazenamento , deverá usar Ctrl+TAB para focar no próximo campo da caixa de diálogo.

  3. Você pode ver o cluster vinculado em HDInsight. Agora você pode enviar um aplicativo para esse cluster vinculado.

    grupo vinculado hdi do Azure Explorer.

  4. Você também pode desvincular um cluster do Azure Explorer.

    cluster desvinculado do Azure Explorer.

Configurar um projeto do Spark Scala para um cluster HDInsight Spark

  1. No espaço de trabalho do Eclipse IDE, selecione Arquivo>Novo Projeto>....

  2. No assistente Novo Projeto, selecione Projeto HDInsight>Spark no HDInsight (Scala). Em seguida, selecione Seguinte.

    Selecionando o projeto Spark no HDInsight (Scala).

  3. Na caixa de diálogo Novo Projeto HDInsight Scala, forneça os seguintes valores e selecione Avançar:

    • Introduza um nome para o projeto.
    • Na área JRE, certifique-se de que Usar um ambiente de execução JRE esteja definido como JavaSE-1.7 ou posterior.
    • Na área da Biblioteca Spark , pode escolher a opção Usar Maven para configurar o SDK do Spark. Nossa ferramenta integra a versão adequada para Spark SDK e Scala SDK. Você também pode escolher opção Adicionar SDK do Spark manualmente, baixar e adicionar o SDK do Spark manualmente.

    caixa de diálogo Novo Projeto HDInsight Scala.

  4. Na caixa de diálogo seguinte, reveja os detalhes e, em seguida, selecione Concluir.

Criar um aplicativo Scala para um cluster HDInsight Spark

  1. A partir Explorador de Pacotes, expanda o projeto que criou anteriormente. Clique com o botão direito do rato src, selecione Novo>Outro....

  2. Na caixa de diálogo Selecionar um assistente, escolha Assistentes Scala>Objeto Scala. Em seguida, selecione Seguinte.

    Selecione um assistente Criar um objeto Scala.

  3. Na caixa de diálogo Criar Novo Arquivo, digite um nome para o objeto e selecione Concluir. Um editor de texto será aberto.

    Assistente para Novo Arquivo Criar Novo Arquivo.

  4. No editor de texto, substitua o conteúdo atual pelo código abaixo:

    import org.apache.spark.SparkConf
    import org.apache.spark.SparkContext
    
    object MyClusterApp{
        def main (arg: Array[String]): Unit = {
        val conf = new SparkConf().setAppName("MyClusterApp")
        val sc = new SparkContext(conf)
    
        val rdd = sc.textFile("wasbs:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
        //find the rows that have only one digit in the seventh column in the CSV
        val rdd1 =  rdd.filter(s => s.split(",")(6).length() == 1)
    
        rdd1.saveAsTextFile("wasbs:///HVACOut")
        }
    }
    
  5. Execute o aplicativo em um cluster HDInsight Spark:

    a) No Explorador de Pacotes, clique com o botão direito do mouse no nome do projeto e selecione Enviar Aplicativo Spark para HDInsight.

    b. Na caixa de diálogo Submissão do Spark, forneça os seguintes valores e selecione Enviar:

    • Para Nome do Cluster , selecione o cluster HDInsight Spark no qual deseja executar a sua aplicação.

    • Selecione um artefato do projeto Eclipse ou selecione um de um disco rígido. O valor padrão depende do item em que você clica com o botão direito do mouse no Explorador de Pacotes.

    • Na lista suspensa Nome da classe principal, o assistente de submissão exibe todos os nomes de objetos do seu projeto. Selecione ou insira um que você deseja executar. Se você selecionou um artefato de um disco rígido, deverá inserir o nome da classe principal manualmente.

    • Como o código do aplicativo neste exemplo não requer argumentos de linha de comando ou JARs ou arquivos de referência, você pode deixar as caixas de texto restantes vazias.

      caixa de diálogo de submissão do Apache Spark.

  6. O separador Spark Submission deverá começar a mostrar o progresso. Você pode parar o aplicativo selecionando o botão vermelho na janela Spark Submission. Você também pode visualizar os logs para este aplicativo específico executado selecionando o ícone de globo (indicado pela caixa azul na imagem).

    janela de submissão do Apache Spark.

Acessar e gerenciar clusters do HDInsight Spark usando as Ferramentas do HDInsight no Kit de Ferramentas do Azure para Eclipse

Você pode executar várias operações usando as Ferramentas HDInsight, incluindo acessar a saída do trabalho.

Aceder à vista de emprego

  1. No Azure Explorer, expanda HDInsight, depois o nome do cluster Spark e selecione Tarefas.

    nó de exibição de trabalho do Azure Explorer Eclipse.

  2. Selecione o nó Trabalhos. Se a versão do Java for inferior à 1.8, as Ferramentas do HDInsight lembram-no automaticamente de instalar o plug-in E(fx)clipse. Selecione OK para continuar e, em seguida, siga o assistente para instalá-lo a partir do Eclipse Marketplace e reinicie o Eclipse.

    Instale o plugin ausente E(fx)clipse.

  3. Abra a Vista de Trabalhos a partir do nó Trabalhos. No painel direito, a guia Spark Job View exibe todos os aplicativos que foram executados no cluster. Selecione o nome do aplicativo para o qual você deseja ver mais detalhes.

    Apache Eclipse visualizar detalhes de registros de trabalho.

    Em seguida, você pode executar qualquer uma destas ações:

    • Passe o cursor sobre o gráfico de trabalho. Ele exibe informações básicas sobre o trabalho em execução. Selecione o gráfico de trabalho e você pode ver os estágios e informações que cada trabalho gera.

      informações sobre o estágio do gráfico de tarefas do Apache Spark.

    • Selecione a guia Log para ver os logs utilizados frequentemente, incluindo Driver Stderr, Driver Stdoute Directory Info.

      informações do log de tarefas do Apache Spark Eclipse.

    • Abra a interface do usuário do histórico do Spark e a interface do usuário do Apache Hadoop YARN (no nível do aplicativo) selecionando os hiperlinks na parte superior da janela.

Acessar o contêiner de armazenamento para o cluster

  1. No Azure Explorer, expanda o nó raiz do HDInsight para ver uma lista de clusters HDInsight Spark disponíveis.

  2. Expanda o nome do cluster para ver a conta de armazenamento e o contêiner de armazenamento padrão para o cluster.

    Conta de armazenamento e contêiner de armazenamento padrão.

  3. Selecione o nome do contêiner de armazenamento associado ao cluster. No painel direito, clique duas vezes na pasta HVACOut. Abra um dos ficheiros part- para ver a saída da aplicação.

Acessar o servidor de histórico do Spark

  1. No Azure Explorer, clique com o botão direito no nome do cluster do Spark e selecione Abrir interface de histórico do Spark. Quando lhe for pedido, introduza as credenciais de administrador para o cluster. Você os especificou ao provisionar o cluster.

  2. No painel do servidor de histórico do Spark, use o nome da aplicação para procurar a aplicação que acabou de executar. No código anterior, você define o nome do aplicativo usando val conf = new SparkConf().setAppName("MyClusterApp"). Então, o nome do seu aplicativo Spark foi MyClusterApp.

Inicie o portal Apache Ambari

  1. No Azure Explorer, clique com o botão direito do mouse no nome do cluster Spark e selecione Open Cluster Management Portal (Ambari).

  2. Quando lhe for pedido, introduza as credenciais de administrador para o cluster. Você os especificou ao provisionar o cluster.

Gerir subscrições do Azure

Por padrão, a Ferramenta HDInsight no Kit de Ferramentas do Azure para Eclipse lista os clusters do Spark de todas as suas assinaturas do Azure. Se necessário, você pode especificar as assinaturas para as quais deseja acessar o cluster.

  1. No Azure Explorer, clique com o botão direito do mouse no nó raiz do Azure e selecione Gerenciar Assinaturas.

  2. Na caixa de diálogo, desmarque as caixas de seleção da assinatura que você não deseja acessar e selecione Fechar. Você também pode selecionar Sair se quiser sair da sua assinatura do Azure.

Executar um aplicativo Spark Scala localmente

Você pode usar as Ferramentas do HDInsight no Kit de Ferramentas do Azure para Eclipse para executar aplicativos Spark Scala localmente em sua estação de trabalho. Normalmente, esses aplicativos não precisam de acesso a recursos de cluster, como um contêiner de armazenamento, e você pode executá-los e testá-los localmente.

Pré-requisito

Enquanto estiver executando o aplicativo Spark Scala local em um computador Windows, você pode obter uma exceção, conforme explicado em SPARK-2356. Essa exceção ocorre porque WinUtils.exe está faltando no Windows.

Para resolver esse erro, você precisa Winutils.exe para um local como C:\WinUtils\bine, em seguida, adicione a variável de ambiente HADOOP_HOME e defina o valor da variável como C:\WinUtils.

Executar um aplicativo Spark Scala local

  1. Inicie o Eclipse e crie um projeto. Na caixa de diálogo Novo Projeto, faça as seguintes opções e selecione Avançar.

  2. No assistente Novo Projeto, selecione Projeto HDInsight>Amostra de Execução Local Spark no HDInsight (Scala). Em seguida, selecione Seguinte.

    Novo projeto seleciona uma caixa de diálogo do assistente.

  3. Para fornecer os detalhes do projeto, siga as etapas 3 a 6 da seção anterior Configurar um projeto Spark Scala para um cluster HDInsight Spark.

  4. O modelo adiciona um código de exemplo (LogQuery) sob a pasta src que você pode executar localmente no seu computador.

    Local da aplicação local LogQuery em Scala.

  5. Clique com botão direito do mouse LogQuery.scala e selecione Executar como>1Aplicativo Scala. Uma saída como esta aparece no separador Console:

    resultado da execução local do aplicativo Spark.

Função somente de leitor

Quando os utilizadores enviam uma tarefa para um cluster com permissões de leitura, são necessárias as credenciais do Ambari.

  1. Inicie sessão com uma conta de função apenas de leitura.

  2. No Azure Explorer, expanda HDInsight para exibir os clusters HDInsight que estão na sua assinatura. Os clusters marcados "Role:Reader" só têm permissão de função somente leitor.

    clusters do HDInsight Spark no leitor de funções do Azure Explorer.

  3. Clique com o botão direito do mouse no cluster com permissão de função de leitura. Selecione Vincular este cluster do menu de contexto para vincular cluster. Digite o nome de usuário e a senha do Ambari.

    Clusters do HDInsight Spark no Azure Explorer link.

  4. Se o cluster for vinculado com êxito, o HDInsight será atualizado. A fase do cluster ficará ligada.

    Clusters HDInsight Spark vinculados no Azure Explorer.

  1. Clique nó Trabalhosjanela ClusterJob Access Denied Denied aparece.

  2. Clique em para vincular este cluster ao cluster de destino.

    clusters de HDInsight Spark no Azure Explorer9.

  1. Crie um projeto HDInsight.

  2. Clique com o botão direito do mouse no pacote. Em seguida, selecione Enviar aplicativo Spark para o HDInsight.

    envio de clusters do HDInsight Spark no Azure Explorer.

  3. Selecione um cluster que tenha permissão de função de apenas leitura para Nome do Cluster. Mensagem de aviso é exibida. Você pode clicar em Vincular este cluster para vincular cluster.

    os clusters do HDInsight Spark vinculam isso no Azure Explorer.

Ver contas de armazenamento

  • Para clusters com permissão de função somente leitor, clique no nó Contas de Armazenamento, a janela Acesso ao Armazenamento Negado aparece.

    clusters do HDInsight Spark nos clusters de armazenamento do Azure Explorer.

    clusters do HDInsight Spark no Azure Explorer negados.

  • Para clusters vinculados, clique no nó Contas de Armazenamento, a janela Acesso ao Armazenamento Negado aparecerá.

    clusters do HDInsight Spark no Azure Explorer negados 2.

Problemas conhecidos

Ao usar Link A Cluster, sugiro que você forneça credenciais de armazenamento.

vincular cluster com eclipses de credenciais de armazenamento.

Existem dois modos para enviar os trabalhos. Se a credencial de armazenamento for fornecida, o modo de lote será usado para enviar o trabalho. Caso contrário, o modo interativo será usado. Se o cluster estiver ocupado, você pode obter o erro abaixo.

eclipse recebe erro quando o cluster está ocupado.

eclipse dá erro quando o cluster está ocupado com o YARN.

Ver também

Cenários

Criando e executando aplicativos

Ferramentas e extensões

Gestão de recursos