Partilhar via


Conecte-se ao HiveServer2 usando o Beeline ou instale o Beeline localmente para se conectar a partir do seu local

O Apache Beeline é um cliente Hive incluído nos nós principais do cluster HDInsight. Este artigo descreve como se conectar ao HiveServer2 usando o cliente Beeline instalado no cluster HDInsight em diferentes tipos de conexões. Ele também discute como instalar o cliente Beeline localmente.

Tipos de conexões

De uma sessão SSH

Quando você se conecta headnodehost de uma sessão SSH a um nó principal de cluster, você pode se conectar ao endereço na porta 10001:

beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'

Através de uma Rede Virtual do Azure

Quando você se conecta de um cliente ao HDInsight por meio de uma Rede Virtual do Azure, deve fornecer o FQDN (nome de domínio totalmente qualificado) de um nó principal de cluster. Como essa conexão é feita diretamente aos nós do cluster, a conexão usa a porta 10001:

beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/;transportMode=http'

Substitua <headnode-FQDN> pelo nome de domínio totalmente qualificado de um headnode de cluster. Para localizar o nome de domínio totalmente qualificado de um nó principal, use as informações no HDInsight gerenciado usando o documento da API REST do Apache Ambari.

Para o cluster do HDInsight Enterprise Security Package (ESP) usando Kerberos

Quando você se conecta de um cliente a um cluster ESP (Enterprise Security Package) ingressado nos Serviços de Domínio Microsoft Entra em uma máquina no mesmo território do cluster, você também deve especificar o nome <AAD-Domain> de domínio e o nome de uma conta de usuário de domínio com permissões para acessar o cluster <username>:

kinit <username>
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/default;principal=hive/_HOST@<AAD-Domain>;auth-kerberos;transportMode=http' -n <username>

Substitua <username> pelo nome de uma conta no domínio com permissões para acessar o cluster. Substitua <AAD-DOMAIN> pelo nome da ID do Microsoft Entra à qual o cluster está associado. Use uma cadeia de caracteres maiúscula para o <AAD-DOMAIN> valor, caso contrário, a credencial não será encontrada. Verifique /etc/krb5.conf os nomes dos territórios, se necessário.

Para encontrar o URL JDBC do Ambari:

  1. Em um navegador da Web, navegue até https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary, onde CLUSTERNAME é o nome do cluster. Verifique se o HiveServer2 está em execução.

  2. Use a área de transferência para copiar a URL JDBC do HiveServer2.

Sobre pontos finais públicos ou privados

Ao se conectar a um cluster usando os pontos de extremidade públicos ou privados, você deve fornecer o nome da conta de login do cluster (padrão admin) e a senha. Por exemplo, usando Beeline de um sistema cliente para se conectar ao clustername.azurehdinsight.net endereço. Essa conexão é feita pela porta 443e é criptografada usando TLS/SSL.

Substitua clustername pelo nome do seu cluster do HDInsight. Substitua admin pela conta de login do cluster para o cluster. Para clusters ESP, use o UPN completo (por exemplo, user@domain.com). Substitua password pela senha da conta de login do cluster.

beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'

Ou para o parâmetro de avaliação privado:

beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'

Os pontos de extremidade privados apontam para um balanceador de carga básico, que só pode ser acessado a partir das VNETs emparelhadas na mesma região. Consulte restrições sobre emparelhamento de VNet global e balanceadores de carga para obter mais informações. Você pode usar o comando com -v a opção para solucionar quaisquer problemas de conectividade com pontos de extremidade públicos ou privados antes de usar o curl beeline.

Use Beeline com Apache Spark

O Apache Spark fornece sua própria implementação do HiveServer2, que às vezes é chamado de servidor Spark Thrift. Este serviço usa o Spark SQL para resolver consultas em vez do Hive. E pode fornecer um melhor desempenho dependendo da sua consulta.

Através de terminais públicos ou privados

A cadeia de conexão usada é ligeiramente diferente. Em vez de contê-lo httpPath=/hive2 usa httpPath/sparkhive2. Substitua clustername pelo nome do seu cluster do HDInsight. Substitua admin pela conta de login do cluster para o cluster. Substitua password pela senha da conta de login do cluster.

Nota

Para clusters ESP, substitua admin por UPN completo (por exemplo, user@domain.com).

beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'

Ou para o parâmetro de avaliação privado:

beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'

Os pontos de extremidade privados apontam para um balanceador de carga básico, que só pode ser acessado a partir das VNETs emparelhadas na mesma região. Consulte restrições sobre emparelhamento de VNet global e balanceadores de carga para obter mais informações. Você pode usar o comando com -v a opção para solucionar quaisquer problemas de conectividade com pontos de extremidade públicos ou privados antes de usar o curl beeline.

A partir do nó principal do cluster ou dentro da Rede Virtual do Azure com o Apache Spark

Quando você se conecta diretamente do nó principal do cluster ou de um recurso dentro da mesma Rede Virtual do Azure que o cluster HDInsight, a porta 10002 deve ser usada para o servidor Spark Thrift em vez de 10001. O exemplo a seguir mostra como se conectar diretamente ao nó principal:

/usr/hdp/current/spark2-client/bin/beeline -u 'jdbc:hive2://headnodehost:10002/;transportMode=http'

Instalar o cliente Beeline

Embora o Beeline esteja incluído nos nós principais, você pode querer instalá-lo localmente. As etapas de instalação para uma máquina local são baseadas em um subsistema Windows para Linux.

  1. Atualizar listas de pacotes. Digite o seguinte comando em seu shell bash:

    sudo apt-get update
    
  2. Instale o Java se não estiver instalado. Você pode verificar com o which java comando.

    1. Se nenhum pacote java estiver instalado, digite o seguinte comando:

      sudo apt install openjdk-11-jre-headless
      
    2. Abra o arquivo bashrc (geralmente encontrado em ~/.bashrc): nano ~/.bashrc.

    3. Altere o arquivo bashrc. Adicione a seguinte linha no final do ficheiro:

      export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
      

      Em seguida, pressione Ctrl+X, Y e digite.

  3. Baixe os arquivos Hadoop e Beeline, digite os seguintes comandos:

    wget https://archive.apache.org/dist/hadoop/core/hadoop-2.7.3/hadoop-2.7.3.tar.gz
    wget https://archive.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
    
  4. Descompacte os arquivos, digite os seguintes comandos:

    tar -xvzf hadoop-2.7.3.tar.gz
    tar -xvzf apache-hive-1.2.1-bin.tar.gz
    
  5. Altere ainda mais o arquivo bashrc. Você precisará identificar o caminho para onde os arquivos foram descompactados. Se estiver usando o Subsistema Windows para Linux, e você seguiu as etapas exatamente, seu caminho seria /mnt/c/Users/user/, onde user é seu nome de usuário.

    1. Abra o arquivo: nano ~/.bashrc

    2. Modifique os comandos abaixo com o caminho apropriado e, em seguida, insira-os no final do arquivo bashrc:

      export HADOOP_HOME=/path_where_the_archives_were_unpacked/hadoop-2.7.3
      export HIVE_HOME=/path_where_the_archives_were_unpacked/apache-hive-1.2.1-bin
      PATH=$PATH:$HIVE_HOME/bin
      
    3. Em seguida, pressione Ctrl+X, Y e digite.

  6. Feche e reabra a sessão bash.

  7. Teste a sua ligação. Use o formato de conexão de Mais pontos de extremidade públicos ou privados, acima.

Próximos passos