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:
Em um navegador da Web, navegue até
https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary
, ondeCLUSTERNAME
é o nome do cluster. Verifique se o HiveServer2 está em execução.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 443
e é 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.
Atualizar listas de pacotes. Digite o seguinte comando em seu shell bash:
sudo apt-get update
Instale o Java se não estiver instalado. Você pode verificar com o
which java
comando.Se nenhum pacote java estiver instalado, digite o seguinte comando:
sudo apt install openjdk-11-jre-headless
Abra o arquivo bashrc (geralmente encontrado em ~/.bashrc):
nano ~/.bashrc
.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.
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
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
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/
, ondeuser
é seu nome de usuário.Abra o arquivo:
nano ~/.bashrc
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
Em seguida, pressione Ctrl+X, Y e digite.
Feche e reabra a sessão bash.
Teste a sua ligação. Use o formato de conexão de Mais pontos de extremidade públicos ou privados, acima.
Próximos passos
- Para obter exemplos usando o cliente Beeline com Apache Hive, consulte Usar Apache Beeline com Apache Hive
- Para obter mais informações gerais sobre o Hive no HDInsight, consulte Usar o Apache Hive com o Apache Hadoop no HDInsight