Compartilhar 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 se conectar de uma sessão SSH a um nó de cabeçalho de cluster, você pode se conectar ao endereço headnodehost na porta 10001:

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

Em uma Rede Virtual do Azure

Ao se conectar de um cliente ao HDInsight por meio de uma Rede Virtual do Azure, você deve fornecer o FQDN (nome de domínio totalmente qualificado) de um nó de cabeçalho 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ó de cabeçalho, use as informações no documento HDInsight gerenciado usando a API REST do Apache Ambari.

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

Quando você se conecta 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 de domínio <AAD-Domain> 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ê deve 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 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 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

Quando você se conecta diretamente do nó de cabeçalho 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 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 sua sessão 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