Partilhar via


Usar ferramentas Spark & Hive para código do Visual Studio

Saiba como usar o Apache Spark & Hive Tools for Visual Studio Code. Use as ferramentas para criar e enviar trabalhos em lote do Apache Hive, consultas interativas do Hive e scripts PySpark para o Apache Spark. Primeiro, descreveremos como instalar o Spark & Hive Tools no Visual Studio Code. Em seguida, explicaremos como enviar trabalhos para o Spark & Hive Tools.

O Spark & Hive Tools pode ser instalado em plataformas suportadas pelo Visual Studio Code. Observe os seguintes pré-requisitos para diferentes plataformas.

Pré-requisitos

Os seguintes itens são necessários para concluir as etapas neste artigo:

Instalar o Spark & Hive Tools

Depois de atender aos pré-requisitos, você pode instalar o Spark & Hive Tools for Visual Studio Code seguindo estas etapas:

  1. Abra o Visual Studio Code.

  2. Na barra de menus, navegue até Exibir>Extensões.

  3. Na caixa de pesquisa, digite Spark & Hive.

  4. Selecione Spark & Hive Tools nos resultados da pesquisa e, em seguida, selecione Instalar:

    Spark & Hive for Visual Studio Code Python install.

  5. Selecione Recarregar quando necessário.

Abrir uma pasta de trabalho

Para abrir uma pasta de trabalho e criar um ficheiro no Visual Studio Code, siga estes passos:

  1. Na barra de menus, navegue até File>Open Folder...>C:\HD\HDexample e, em seguida, selecione o botão Selecionar pasta. A pasta aparece no modo de exibição Explorer à esquerda.

  2. No modo de exibição Explorer , selecione a pasta HDexample e, em seguida, selecione o ícone Novo arquivo ao lado da pasta de trabalho:

    visual studio code new file icon.

  3. Nomeie o novo arquivo usando a .hql extensão de arquivo (consultas Hive) ou ( .py script Spark). Este exemplo usa HelloWorld.hql.

Definir o ambiente do Azure

Para um usuário de nuvem nacional, siga estas etapas para definir o ambiente do Azure primeiro e, em seguida, use o comando Azure: Entrar para entrar no Azure:

  1. Navegue até Configurações de preferências>de arquivo.>

  2. Pesquisar na seguinte cadeia de caracteres: Azure: Cloud.

  3. Selecione a nuvem nacional na lista:

    Set default login entry configuration.

Ligar a uma conta do Azure

Antes de enviar scripts para seus clusters a partir do Visual Studio Code, o usuário pode entrar na assinatura do Azure ou vincular um cluster HDInsight. Use o nome de usuário/senha ou a credencial de ingresso no domínio do Ambari para o cluster ESP para se conectar ao cluster HDInsight. Siga estas etapas para se conectar ao Azure:

  1. Na barra de menus, navegue até Exibir>Paleta de Comandos..., e digite Azure: Entrar:

    Spark & Hive Tools for Visual Studio Code login.

  2. Siga as instruções de início de sessão para iniciar sessão no Azure. Depois que você estiver conectado, o nome da sua conta do Azure será exibido na barra de status na parte inferior da janela Código do Visual Studio.

Você pode vincular um cluster normal usando um nome de usuário gerenciado pelo Apache Ambari ou pode vincular um cluster Hadoop seguro do Enterprise Security Pack usando um nome de usuário de domínio (como: user1@contoso.com).

  1. Na barra de menus, navegue até Exibir>paleta de comandos..., e digite Faísca / Colmeia: Vincular um cluster.

    Command Palette link cluster command.

  2. Selecione o tipo de cluster vinculado Azure HDInsight.

  3. Insira a URL do cluster HDInsight.

  4. Digite seu nome de usuário Ambari; O padrão é admin.

  5. Digite sua senha Ambari.

  6. Selecione o tipo de cluster.

  7. Defina o nome para exibição do cluster (opcional).

  8. Revise o modo de exibição OUTPUT para verificação.

    Nota

    O nome de usuário e a senha vinculados serão usados se o cluster tiver conectado à assinatura do Azure e vinculado a um cluster.

  1. Na barra de menus, navegue até Exibir>paleta de comandos..., e digite Faísca / Colmeia: Vincular um cluster.

  2. Selecione o tipo de cluster vinculado Generic Livy Endpoint.

  3. Insira o ponto de extremidade Livy genérico. Por exemplo: http://10.172.41.42:18080.

  4. Selecione o tipo de autorização Basic ou None. Se você selecionar Básico:

    1. Digite seu nome de usuário Ambari; O padrão é admin.

    2. Digite sua senha Ambari.

  5. Revise o modo de exibição OUTPUT para verificação.

Listar clusters

  1. Na barra de menus, navegue até View>Command Palette..., e digite Spark / Hive: List Cluster.

  2. Selecione a assinatura desejada.

  3. Analise a visualização SAÍDA . Esta vista mostra o seu cluster (ou clusters) ligado e todos os clusters na sua subscrição do Azure:

    Set a default cluster configuration.

Definir o cluster padrão

  1. Reabra a pasta HDexample que foi discutida anteriormente, se fechada.

  2. Selecione o arquivo HelloWorld.hql que foi criado anteriormente. Ele é aberto no editor de scripts.

  3. Clique com o botão direito do mouse no editor de scripts e selecione Faísca / Colmeia: Definir cluster padrão.

  4. Conecte-se à sua conta do Azure ou vincule um cluster se ainda não tiver feito isso.

  5. Selecione um cluster como o cluster padrão para o arquivo de script atual. As ferramentas atualizam automaticamente o . VSCode\settings.json arquivo de configuração:

    Set default cluster configuration.

Enviar consultas interativas do Hive e scripts em lote do Hive

Com o Spark & Hive Tools for Visual Studio Code, você pode enviar consultas interativas do Hive e scripts em lote do Hive para seus clusters.

  1. Reabra a pasta HDexample que foi discutida anteriormente, se fechada.

  2. Selecione o arquivo HelloWorld.hql que foi criado anteriormente. Ele é aberto no editor de scripts.

  3. Copie e cole o seguinte código no arquivo do Hive e salve-o:

    SELECT * FROM hivesampletable;
    
  4. Conecte-se à sua conta do Azure ou vincule um cluster se ainda não tiver feito isso.

  5. Clique com o botão direito do mouse no editor de scripts e selecione Hive: Interactive para enviar a consulta ou use o atalho de teclado Ctrl+Alt+I. Selecione Hive: Batch para enviar o script ou use o atalho de teclado Ctrl+Alt+H.

  6. Se você não tiver especificado um cluster padrão, selecione um cluster. As ferramentas também permitem enviar um bloco de código em vez de todo o arquivo de script usando o menu de contexto. Após alguns momentos, os resultados da consulta aparecem em uma nova guia:

    Interactive Apache Hive query result.

    • Painel RESULTADOS : Você pode salvar todo o resultado como um arquivo CSV, JSON ou Excel em um caminho local ou apenas selecionar várias linhas.

    • Painel MENSAGENS : Quando você seleciona um número de linha , ele salta para a primeira linha do script em execução.

Enviar consultas interativas do PySpark

Pré-requisito para o Pyspark interativo

Observe aqui que a versão do Jupyter Extension (ms-jupyter): v2022.1.1001614873 e a versão Python Extension (ms-python): v2021.12.1559732655, Python 3.6.x e 3.7.x são necessárias para consultas interativas do PySpark do HDInsight.

Os usuários podem executar o PySpark interativo das seguintes maneiras.

Usando o comando interativo PySpark no arquivo PY

Usando o comando interativo PySpark para enviar as consultas, siga estas etapas:

  1. Reabra a pasta HDexample que foi discutida anteriormente, se fechada.

  2. Crie um novo arquivo HelloWorld.py , seguindo as etapas anteriores .

  3. Copie e cole o seguinte código no arquivo de script:

    from operator import add
    from pyspark.sql import SparkSession 
    spark = SparkSession.builder \ 
          .appName('hdisample') \ 
          .getOrCreate() 
    lines = spark.read.text("/HdiSamples/HdiSamples/FoodInspectionData/README").rdd.map(lambda r: r[0])
    counters = lines.flatMap(lambda x: x.split(' ')) \
                 .map(lambda x: (x, 1)) \
                 .reduceByKey(add)
    
    coll = counters.collect()
    sortedCollection = sorted(coll, key = lambda r: r[1], reverse = True)
    
    for i in range(0, 5):
         print(sortedCollection[i])
    
  4. O prompt para instalar o kernel PySpark/Synapse Pyspark é exibido no canto inferior direito da janela. Você pode clicar no botão Instalar para prosseguir para as instalações do PySpark/Synapse Pyspark, ou clicar no botão Ignorar para pular esta etapa.

    Screenshot shows an option to skip the PySpark installation.

  5. Se precisar de instalá-lo mais tarde, pode navegar até Definições de Preferências>de Ficheiros> e, em seguida, desmarcar HDInsight: Ativar Instalação Skip Pyspark nas definições.

    Screenshot shows the option to Enable Skip Pyspark Installation.

  6. Se a instalação for bem-sucedida na etapa 4, a caixa de mensagem "PySpark instalado com êxito" é exibida no canto inferior direito da janela. Clique no botão Recarregar para recarregar a janela.

    pyspark installed successfully.

  7. Na barra de menus, navegue até View>Command Palette... ou use o atalho de teclado Shift + Ctrl + P e digite Python: Select Interpreter para iniciar o Jupyter Server.

    select interpreter to start jupyter server.

  8. Selecione a opção Python abaixo.

    choose the below option.

  9. Na barra de menus, navegue até View>Command Palette... ou use o atalho de teclado Shift + Ctrl + P e digite Developer: Reload Window.

    reload window.

  10. Conecte-se à sua conta do Azure ou vincule um cluster se ainda não tiver feito isso.

  11. Selecione todo o código, clique com o botão direito do mouse no editor de scripts e selecione Spark: PySpark Interactive / Synapse: Pyspark Interactive para enviar a consulta.

    pyspark interactive context menu.

  12. Selecione o cluster, se você não tiver especificado um cluster padrão. Depois de alguns momentos, os resultados do Python Interactive aparecem em uma nova guia. Clique em PySpark para mudar o kernel para PySpark / Synapse Pyspark, e o código será executado com sucesso. Se você quiser alternar para o kernel Synapse Pyspark, a desativação das configurações automáticas no portal do Azure é incentivada. Caso contrário, pode levar muito tempo para acordar o cluster e definir o kernel de sinapse para o uso pela primeira vez. Se as ferramentas também permitirem que você envie um bloco de código em vez de todo o arquivo de script usando o menu de contexto:

    pyspark interactive python interactive window.

  13. Digite %%info e pressione Shift+Enter para exibir as informações do trabalho (opcional):

    pyspark interactive view job information.

A ferramenta também suporta a consulta Spark SQL :

pyspark interactive view result.

Execute uma consulta interativa no arquivo PY usando um comentário #%%

  1. Adicione #%% antes do código Py para obter experiência no bloco de anotações.

    add #%%.

  2. Clique em Executar célula. Após alguns momentos, os resultados do Python Interactive aparecem em uma nova guia. Clique em PySpark para mudar o kernel para PySpark/Synapse PySpark, em seguida, clique em Run Cell novamente, e o código será executado com sucesso.

    run cell results.

Aproveite o suporte IPYNB da extensão Python

  1. Você pode criar um Jupyter Notebook por comando a partir da Paleta de Comandos ou criando um novo arquivo .ipynb em seu espaço de trabalho. Para obter mais informações, consulte Trabalhando com blocos de anotações Jupyter no Visual Studio Code

  2. Clique no botão Executar célula , siga as instruções para Definir o pool de faíscas padrão (recomendo fortemente definir cluster/pool padrão toda vez antes de abrir um bloco de anotações) e, em seguida, Recarregar janela.

    set the default spark pool and reload.

  3. Clique em PySpark para mudar o kernel para PySpark / Synapse Pyspark e, em seguida, clique em Run Cell, depois de um tempo, o resultado será exibido.

    run ipynb results.

Nota

Para o erro de instalação do Synapse PySpark, uma vez que sua dependência não será mais mantida por outra equipe, isso não será mais mantido também. Se você estiver tentando usar o Synapse Pyspark interativo, alterne para usar o Azure Synapse Analytics em vez disso. E é uma mudança a longo prazo.

Enviar trabalho em lote do PySpark

  1. Reabra a pasta HDexample que você discutiu anteriormente, se fechada.

  2. Crie um novo arquivo BatchFile.py seguindo as etapas anteriores .

  3. Copie e cole o seguinte código no arquivo de script:

    from __future__ import print_function
    import sys
    from operator import add
    from pyspark.sql import SparkSession
    if __name__ == "__main__":
        spark = SparkSession\
            .builder\
            .appName("PythonWordCount")\
            .getOrCreate()
    
        lines = spark.read.text('/HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv').rdd.map(lambda r: r[0])
        counts = lines.flatMap(lambda x: x.split(' '))\
                   .map(lambda x: (x, 1))\
                    .reduceByKey(add)
        output = counts.collect()
        for (word, count) in output:
            print("%s: %i" % (word, count))
        spark.stop()
    
  4. Conecte-se à sua conta do Azure ou vincule um cluster se ainda não tiver feito isso.

  5. Clique com o botão direito do mouse no editor de scripts e selecione Spark: PySpark Batch ou Synapse: PySpark Batch*.

  6. Selecione um cluster/pool de faíscas para enviar seu trabalho do PySpark para:

    Submit Python job result output.

Depois de enviar um trabalho Python, os logs de envio aparecem na janela OUTPUT no Visual Studio Code. A URL da interface do usuário do Spark e a URL da interface do usuário do Yarn também são mostradas. Se você enviar o trabalho em lote para um pool do Apache Spark, a URL da interface do usuário do histórico do Spark e a URL da interface do usuário do aplicativo Spark Job também serão mostradas. Você pode abrir a URL em um navegador da Web para acompanhar o status do trabalho.

Integração com o HDInsight Identity Broker (HIB)

Conectar-se ao cluster ESP do HDInsight com o ID Broker (HIB)

Você pode seguir as etapas normais para entrar na assinatura do Azure para se conectar ao cluster ESP do HDInsight com o ID Broker (HIB). Após entrar, você verá a lista de clusters no Azure Explorer. Para obter mais instruções, consulte Conectar-se ao cluster HDInsight.

Executar um trabalho Hive/PySpark em um cluster ESP do HDInsight com ID Broker (HIB)

Para executar um trabalho de hive, você pode seguir as etapas normais para enviar o trabalho para o cluster ESP do HDInsight com o ID Broker (HIB). Consulte Enviar consultas interativas do Hive e scripts em lote do Hive para obter mais instruções.

Para executar um trabalho interativo do PySpark, você pode seguir as etapas normais para enviar o trabalho para o cluster ESP do HDInsight com o ID Broker (HIB). Consulte Enviar consultas interativas do PySpark.

Para executar um trabalho em lote do PySpark, você pode seguir as etapas normais para enviar o trabalho para o cluster ESP do HDInsight com ID Broker (HIB). Consulte Enviar trabalho em lote do PySpark para obter mais instruções.

Configuração do Apache Livy

A configuração do Apache Livy é suportada. Você pode configurá-lo no . VSCode\settings.json na pasta de espaço de trabalho. Atualmente, a configuração do Livy suporta apenas script Python. Para obter mais informações, consulte Livy README.

Como acionar a configuração do Livy

Método 1

  1. Na barra de menus, navegue até Configurações de preferências>de arquivo>.
  2. Na caixa Configurações de pesquisa, digite Envio de trabalho do HDInsight: Livy Conf.
  3. Selecione Editar no settings.json para obter o resultado da pesquisa relevante.

Método 2

Envie um arquivo e observe que a pasta é adicionada .vscode automaticamente à pasta de trabalho. Você pode ver a configuração do Livy selecionando .vscode\settings.json.

  • As configurações do projeto:

    HDInsight Apache Livy configuration.

    Nota

    Para as configurações driverMemory e executorMemory , defina o valor e a unidade. Por exemplo: 1g ou 1024m.

  • Configurações Livy suportadas:

    POST /lotes

    Corpo do pedido

    nome descrição tipo
    ficheiro Arquivo contendo o aplicativo a ser executado Caminho (obrigatório)
    proxyUser Usuário a ser representado ao executar o trabalho String
    className Classe principal do aplicativo Java/Spark String
    args Argumentos de linha de comando para o aplicativo Lista de cadeias de caracteres
    frascos Frascos para serem usados nesta sessão Lista de cadeias de caracteres
    Arquivos py Arquivos Python a serem usados nesta sessão Lista de cadeias de caracteres
    ficheiros Ficheiros a utilizar nesta sessão Lista de cadeias de caracteres
    driverMemória Quantidade de memória a ser usada para o processo do driver String
    driverCores Número de núcleos a serem usados para o processo de driver Int
    executorMemória Quantidade de memória a ser usada por processo de execução String
    executorCores Número de núcleos a serem usados para cada executor Int
    numExecutores Número de executores a serem iniciados para esta sessão Int
    Arquivos Arquivos a utilizar nesta sessão Lista de cadeias de caracteres
    queue Nome da fila YARN a ser enviada String
    nome Nome desta sessão String
    conf Propriedades de configuração do Spark Mapa da chave=val

    Corpo da resposta O objeto Batch criado.

    nome descrição tipo
    ID ID da Sessão Int
    appId ID do aplicativo desta sessão String
    appInfo Informações detalhadas sobre a aplicação Mapa da chave=val
    registo Linhas de log Lista de cadeias de caracteres
    state Estado do lote String

    Nota

    A configuração Livy atribuída é exibida no painel de saída quando você envia o script.

Integração com o Azure HDInsight a partir do Explorer

Você pode visualizar a Tabela do Hive em seus clusters diretamente por meio do explorador do Azure HDInsight :

  1. Conecte-se à sua conta do Azure se ainda não tiver feito isso.

  2. Selecione o ícone do Azure na coluna mais à esquerda.

  3. No painel esquerdo, expanda AZURE: HDINSIGHT. As assinaturas e clusters disponíveis são listados.

  4. Expanda o cluster para exibir o banco de dados de metadados do Hive e o esquema de tabela.

  5. Clique com o botão direito do rato na tabela Hive. Por exemplo: hivesampletable. Selecione Pré-visualizar.

    Spark & Hive for Visual Studio Code preview hive table.

  6. A janela Visualizar resultados abre:

    Spark & Hive for Visual Studio Code preview results window.

  • Painel RESULTADOS

    Você pode salvar todo o resultado como um arquivo CSV, JSON ou Excel em um caminho local ou apenas selecionar várias linhas.

  • Painel MENSAGENS

    1. Quando o número de linhas na tabela é maior que 100, você vê a seguinte mensagem: "As primeiras 100 linhas são exibidas para a tabela Hive."

    2. Quando o número de linhas na tabela é menor ou igual a 100, você vê a seguinte mensagem: "60 linhas são exibidas para a tabela Hive."

    3. Quando não há conteúdo na tabela, você vê a seguinte mensagem: "0 rows are displayed for Hive table."

      Nota

      No Linux, instale o xclip para habilitar os dados da tabela de cópia.

      Spark & Hive for Visual Studio code in Linux.

Características adicionais

O Spark & Hive for Visual Studio Code também oferece suporte aos seguintes recursos:

  • Preenchimento automático do IntelliSense. Sugestões aparecem para palavras-chave, métodos, variáveis e outros elementos de programação. Ícones diferentes representam diferentes tipos de objetos:

    Spark & Hive Tools for Visual Studio Code IntelliSense objects.

  • Marcador de erro IntelliSense. O serviço de linguagem sublinha erros de edição no script do Hive.

  • Destaques de sintaxe. O serviço de linguagem usa cores diferentes para diferenciar variáveis, palavras-chave, tipo de dados, funções e outros elementos de programação:

    Spark & Hive Tools for Visual Studio Code syntax highlights.

Função somente de leitor

Os usuários aos quais é atribuída a função somente leitor para o cluster não podem enviar trabalhos para o cluster HDInsight, nem exibir o banco de dados do Hive. Entre em contato com o administrador do cluster para atualizar sua função para o Operador de Cluster HDInsight no portal do Azure. Se você tiver credenciais Ambari válidas, poderá vincular manualmente o cluster usando as diretrizes a seguir.

Procurar no cluster HDInsight

Ao selecionar o explorador do Azure HDInsight para expandir um cluster HDInsight, você será solicitado a vincular o cluster se tiver a função somente leitor para o cluster. Use o método a seguir para vincular ao cluster usando suas credenciais Ambari.

Enviar o trabalho para o cluster HDInsight

Ao enviar o trabalho para um cluster HDInsight, você será solicitado a vincular o cluster se estiver na função somente leitor para o cluster. Use as etapas a seguir para vincular ao cluster usando credenciais do Ambari.

  1. Insira um nome de usuário Ambari válido.

  2. Introduza uma palavra-passe válida.

    Spark & Hive Tools for Visual Studio Code Username.

    Spark & Hive Tools for Visual Studio Code Password.

    Nota

    Você pode usar Spark / Hive: List Cluster para verificar o cluster vinculado:

    Spark & Hive Tools for Visual Studio Code Reader Linked.

Azure Data Lake Storage Gen2

Procurar uma conta do Data Lake Storage Gen2

Selecione o explorador do Azure HDInsight para expandir uma conta do Data Lake Storage Gen2. Você será solicitado a inserir a chave de acesso de armazenamento se sua conta do Azure não tiver acesso ao armazenamento Gen2. Depois que a chave de acesso for validada, a conta do Data Lake Storage Gen2 será expandida automaticamente.

Enviar trabalhos para um cluster HDInsight com o Data Lake Storage Gen2

Envie um trabalho para um cluster HDInsight usando o Data Lake Storage Gen2. Você será solicitado a inserir a chave de acesso de armazenamento se sua conta do Azure não tiver acesso de gravação ao armazenamento Gen2. Depois que a chave de acesso for validada, o trabalho será enviado com sucesso.

Spark & Hive Tools for Visual Studio Code AccessKey.

Nota

Você pode obter a chave de acesso para a conta de armazenamento no portal do Azure. Para obter mais informações, consulte Gerenciar chaves de acesso da conta de armazenamento.

  1. Na barra de menus, vá para Exibir>paleta de comandos e digite Faísca / Colmeia: Desvincular um cluster.

  2. Selecione um cluster para desvincular.

  3. Consulte a visualização OUTPUT para verificação.

Terminar sessão

Na barra de menus, vá para Exibir>Paleta de Comandos e digite Azure: Sair.

Problemas Conhecidos

Erro de instalação do Synapse PySpark.

Para erro de instalação do Synapse PySpark, uma vez que sua dependência não será mais mantida por outra equipe, ela não será mais mantida. Se você tentar usar o Synapse Pyspark interativo, use o Azure Synapse Analytics em vez disso. E é uma mudança a longo prazo.

synapse pyspark installation error.

Próximos passos

Para obter um vídeo que demonstra o uso do Spark & Hive para Visual Studio Code, consulte Spark & Hive para Visual Studio Code.