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:
Em um navegador da Web, navegue até
https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary
, em queCLUSTERNAME
é o nome do cluster. Verifique se o serviço HiveServer2 está em execução.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.
Atualize as 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 comando
which java
.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
.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.
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
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
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 queuser
é seu nome de usuário.Abra o arquivo:
nano ~/.bashrc
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
Pressione Ctrl + X, Y e, em seguida, Enter.
Feche e reabra sua sessão bash.
Teste sua conexão. Use o formato de conexão de Em pontos de extremidade públicos ou privados, acima.
Próximas etapas
- Para exemplos de uso do cliente Beeline com Apache Hive, confira Usar Apache Beeline com Apache Hive
- Para obter mais informações gerais sobre o Hive no HDInsight, consulte Usar Apache Hive com Apache Hadoop no HDInsight