Share via


Conectar-se ao HiveServer2 usando o Beeline ou instalar o Beeline localmente para se conectar do seu local

O Apache Beeline é um cliente Hive que está incluído em nós principais do cluster HDInsight. Este artigo descreve como se conectar ao HiveServer2 usando o cliente Beeline instalado em seu cluster HDInsight em diferentes tipos de conexões. Ele também aborda como Instalar o cliente Beeline localmente.

Tipos de conexões

De uma sessão SSH

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

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

Em uma Rede Virtual do Azure

Ao conectar-se de um cliente ao HDInsight em uma rede Virtual do Azure, você deve fornecer o nome de domínio totalmente qualificado (FQDN) de um nó principal do cluster. Desde que essa conexão seja feita diretamente para os nós de 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 nó principal do cluster. Para localizar o nome de domínio totalmente qualificado de um nó principal, use as informações do documento Gerenciar HDInsight usando a API de REST do Apache Ambari.

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

Ao se conectar de um cliente a um cluster ESP (Enterprise Security Package) ingressado no Microsoft Entra Domain Services em um computador no mesmo realm 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 em maiúsculas para o valor <AAD-DOMAIN>, caso contrário, a credencial não será encontrada. Marque /etc/krb5.conf para os nomes de realm, 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, em que CLUSTERNAME é o nome do cluster. Verifique se o serviço HiveServer2 está em execução.

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

Em pontos de extremidade públicos ou privados

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

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

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

ou para o ponto de extremidade 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 de VNETs com emparelhamento na mesma região. Confira as restrições de emparelhamento VNet global e balanceadores de carga para saber mais. Você pode usar o comando curl com a opção -v de solucionar quaisquer problemas de conectividade com pontos de extremidade públicos ou privados antes de usar o beeline.

Usar Beeline com Apache Spark

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

Por meio de pontos de extremidade públicos ou privados

A cadeia de conexão usada é um pouco diferente. Em vez de conter httpPath=/hive2, ele usa httpPath/sparkhive2. Substitua clustername pelo nome do cluster HDInsight. Substitua admin pela conta de logon do cluster de seu cluster. Substitua password pela senha da conta de logon do cluster.

Observação

Para clusters ESP, substitua admin pelo 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 ponto de extremidade 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 de VNETs com emparelhamento na mesma região. Confira as restrições de emparelhamento VNet global e balanceadores de carga para saber mais. Você pode usar o comando curl com a opção -v de solucionar quaisquer problemas de conectividade com pontos de extremidade públicos ou privados antes de usar o beeline.

Do nó do cabeçalho do cluster ou dentro da Rede Virtual do Azure com o Apache Spark

Ao conectar 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 do 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 Beeline esteja incluído nos nós principais, talvez você queira instalá-lo localmente. As etapas de instalação para um computador local são baseadas em um Subsistema do Windows para Linux.

  1. Atualize as 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 comando which java.

    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. Modifique o arquivo bashrc. Adicione a seguinte linha ao final do arquivo:

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

      Pressione Ctrl + X, Y e, em seguida, Enter.

  3. Para baixar os arquivos de 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. Para descompactar os arquivos, insira os seguintes comandos:

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

    1. Abra o arquivo: nano ~/.bashrc

    2. Modifique os comandos abaixo com o caminho apropriado e 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. Pressione Ctrl + X, Y e, em seguida, Enter.

  6. Feche e reabra a sessão de bash.

  7. Teste sua conexão. Use o formato de conexão de Em pontos de extremidade públicos ou privados, acima.

Próximas etapas