Todos os produtos
Search
Central de documentação

E-MapReduce:Métodos de conexão do Hive

Última atualização: Jul 20, 2026

Conecte-se ao Hive no E-MapReduce usando o cliente Hive, Beeline ou JDBC.

Pré-requisitos

  • Crie um cluster com o service Hive habilitado (por exemplo, DataLake ou Custom) e ative a chave Assign Public Network IP do nó mestre para permitir login remoto. Para mais informações sobre como criar clusters, consulte Create a cluster.

    • Clusters comuns: clusters sem Kerberos Authentication ou High Service Availability habilitados.

    • Clusters de alta segurança: clusters criados com a chave Kerberos Authentication ativada.

    • Clusters de alta disponibilidade: clusters criados com a chave High Service Availability ativada. Ao criar um cluster de alta disponibilidade, selecione também o service ZooKeeper.

  • Faça login no nó mestre do cluster. Para mais informações, consulte Log on to a cluster.

Observações

  • master-1-1 e <Master node public IP address>: nome do host e endereço IP público do nó mestre. Essas informações estão disponíveis na página Nodes do cluster no console EMR. Para mais detalhes, consulte Log on to a cluster.

    Geralmente, o nome do host do nó mestre é master-1-1. Se o cluster for Hadoop, o nome do host será emr-header-1.

  • Por padrão, o HiveServer2 não valida nomes de usuário e senhas. Para habilitar essa autenticação, ative a autenticação LDAP. Para mais informações, consulte Use LDAP authentication.

Procedimento

Clusters comuns

Conexão via cliente Hive

  1. Execute o comando a seguir para conectar-se ao Hive.

    hive
  2. Opcional: execute quit; ou exit; para sair do Hive.

Conexão via cliente Beeline

  1. Execute o comando a seguir para conectar-se ao Hive.

    beeline -u jdbc:hive2://master-1-1:10000
  2. Opcional: execute !quit ou !exit para sair do Beeline.

Conexão via JDBC

Importante

Certifique-se de ter instalado um ambiente Java e ferramentas de desenvolvimento, além de configurar as variáveis de ambiente correspondentes.

  1. Configure as dependências do projeto (hadoop-common e hive-jdbc) no arquivo pom.xml. Exemplo:

    <dependencies>
            <dependency>
                <groupId>org.apache.hive</groupId>
                <artifactId>hive-jdbc</artifactId>
                <version>3.1.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>3.2.1</version>
            </dependency>
    </dependencies>

    Verifique se as versões do hadoop-common e do hive-jdbc correspondem às versões do Hadoop-Common e do Hive no seu cluster EMR. Visualize essas informações na aba Basic Information, na seção Software Information do cluster de destino no console EMR.

  2. Escreva o código para conectar-se ao HiveServer2 e operar dados das tabelas Hive. Código de exemplo:

    import java.sql.*;
    public class App
    {
        private static String driverName = "org.apache.hive.jdbc.HiveDriver";
        public static void main(String[] args) throws SQLException {
            try {
                Class.forName(driverName);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            Connection con = DriverManager.getConnection(
                "jdbc:hive2://<Master node public IP address>:10000", "root", "");
            Statement stmt = con.createStatement();
            String sql = "select * from sample_tbl limit 10";
            ResultSet res = stmt.executeQuery(sql);
            while (res.next()) {
                System.out.println(res.getString(1) + "\t" + res.getString(2));
            }
        }
    }
    Nota

    Este método exige que a porta 10000 esteja aberta. Para mais informações, consulte Manage security groups.

  3. Compile o projeto para gerar um arquivo JAR e envie-o para o ambiente de execução.

    Importante

    O arquivo JAR depende do hadoop-common e do hive-jdbc. Se essas dependências não estiverem disponíveis no ambiente de execução, baixe-as e configure-as ou inclua-as no pacote do arquivo JAR. A ausência de qualquer uma das dependências resultará em um dos seguintes erros:

    • Falta do hadoop-common: java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration

    • Falta do hive-jdbc: java.lang.ClassNotFoundException: org.apache.hive.jdbc.HiveDriver

    Neste exemplo, o arquivo JAR gerado chama-se emr-hiveserver2-1.0.jar. Envie este arquivo JAR para o nó mestre do seu cluster E-MapReduce.

  4. Teste se o arquivo JAR executa corretamente.

    Importante

    O servidor que executa o arquivo JAR e o cluster E-MapReduce devem estar na mesma VPC e no mesmo grupo de segurança. Se estiverem em VPCs ou ambientes de rede diferentes, conecte-se pelo endereço IP público ou use produtos de rede da Alibaba Cloud para estabelecer conectividade interna. Para testar a conectividade de rede:

    • Rede pública: telnet public IP address of master-1-1 10000

    • Rede privada: telnet private IP address of master-1-1 10000

    java -jar emr-hiveserver2-1.0.jar

Clusters de alta segurança

Conexão via cliente Hive

  1. Execute o comando a seguir para iniciar a ferramenta Kerberos admin.local.

    • Se você fez login no nó master-1-1, onde o servidor Kerberos Key Distribution Center (KDC) roda como usuário root, execute o comando a seguir para acessar diretamente a ferramenta de administração.

      kadmin.local

      A saída a seguir indica que você entrou na interface de linha de comando kadmin.local:

      Authenticating as principal hadoop/admin@EMR.C-85D4B8D74296****.COM with password.
      kadmin.local:
    • Se o login for feito em outro nó ou via gateway, execute este comando para acessar a ferramenta de administração.

      kadmin -p <admin-user> -w <admin-password>
      Nota

      Ao usar o KDC fornecido pelo E-MapReduce, observe os seguintes parâmetros:

      • <admin-user>: o valor é fixo como root/admin.

      • <admin-password>: no console E-MapReduce, acesse a aba Configure do service Kerberos para obter o valor do parâmetro admin_pwd.

      A saída a seguir confirma a entrada na interface de linha de comando kadmin:

      Authenticating as principal root/admin with password.
      kadmin:
  2. Execute o comando a seguir para criar um principal chamado test.

    Neste exemplo, a senha é 123456.

    addprinc -pw 123456 test

    A saída a seguir indica que o principal foi criado com sucesso:

    Principal "test@EMR.C-85D4B8D74296****.COM" created.
    Nota

    Anote o nome de usuário e a senha. Eles serão necessários para criar um ticket-granting ticket (TGT).

    Execute o comando quit para sair da ferramenta Kerberos admin.local.

  3. Faça login na máquina onde deseja executar o cliente Hive e execute os comandos a seguir para criar e alternar para o usuário test.

    useradd test
    su test
  4. Execute o comando a seguir para criar um TGT.

    kinit

    Pressione Enter e insira a senha do usuário test. Neste exemplo, a senha é 123456.

  5. Execute o comando hive para acessar o cliente Hive.

    hive

Conexão via cliente Beeline

  1. Execute o comando a seguir para iniciar a ferramenta Kerberos admin.local.

    • Se você fez login no nó master-1-1, onde o servidor Kerberos Key Distribution Center (KDC) roda como usuário root, execute o comando a seguir para acessar diretamente a ferramenta de administração.

      kadmin.local

      A saída a seguir indica que você entrou na interface de linha de comando kadmin.local:

      Authenticating as principal hadoop/admin@EMR.C-85D4B8D74296****.COM with password.
      kadmin.local:
    • Se o login for feito em outro nó ou via gateway, execute este comando para acessar a ferramenta de administração.

      kadmin -p <admin-user> -w <admin-password>
      Nota

      Ao usar o KDC fornecido pelo E-MapReduce, observe os seguintes parâmetros:

      • <admin-user>: o valor é fixo como root/admin.

      • <admin-password>: no console E-MapReduce, acesse a aba Configure do service Kerberos para obter o valor do parâmetro admin_pwd.

      A saída a seguir confirma a entrada na interface de linha de comando kadmin:

      Authenticating as principal root/admin with password.
      kadmin:
  2. Execute o comando a seguir para criar um principal chamado test.

    Neste exemplo, a senha é 123456.

    addprinc -pw 123456 test

    A saída a seguir indica que o principal foi criado com sucesso:

    Principal "test@EMR.C-85D4B8D74296****.COM" created.
    Nota

    Anote o nome de usuário e a senha. Eles serão necessários para criar um ticket-granting ticket (TGT).

    Execute o comando quit para sair da ferramenta Kerberos admin.local.

  3. Faça login na máquina onde deseja executar o cliente Hive e execute os comandos a seguir para criar e alternar para o usuário test.

    useradd test
    su test
  4. Execute o comando a seguir para criar um TGT.

    kinit

    Pressione Enter e insira a senha do usuário test. Neste exemplo, a senha é 123456.

  5. Execute o comando a seguir para acessar o cliente Hive.

    beeline -u "jdbc:hive2://master-1-1.c-56187feb57f0****.cn-hangzhou.emr.aliyuncs.com:10000/;principal=hive/_HOST@EMR.c-56187feb57f0****.COM"

    Substitua os placeholders a seguir pelas suas informações:

    • master-1-1.c-56187feb57f0****.cn-hangzhou.emr.aliyuncs.com: nome do host totalmente qualificado, incluindo o nome de domínio. Obtenha o nome do host executando o comando hostname -f no nó onde o service HiveServer2 está rodando (geralmente o nó master-1-1).

    • EMR.c-56187feb57f0****.COM: nome do realm. No console E-MapReduce, acesse a aba Configure do service Kerberos para encontrar o valor do parâmetro realm.

Clusters de alta disponibilidade

Conexão via cliente Beeline

Dependendo do modo de descoberta de service selecionado (zooKeeper ou multiServers), use o comando correspondente para configurar a conexão do Beeline.

  • Modo zooKeeper

    beeline -u 'jdbc:hive2://master-1-1:2181,master-1-2:2181,master-1-3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2'
  • Modo multiServers

    beeline -u 'jdbc:hive2://master-1-1:10000,master-1-2:10000,master-1-3:10000/default;serviceDiscoveryMode=multiServers'

Perguntas frequentes

O que fazer ao receber um erro de "porta inacessível" ao conectar-se ao Hive?

Se encontrar um erro de porta inacessível, verifique os itens a seguir:

  • Confirme se o service HiveServer2 está em execução.

    No nó do HiveServer2, execute o comando a seguir para verificar se há um processo de service escutando na porta especificada (o padrão é 10000).

    netstat -tulnp | grep 10000

    Garanta que a saída inclua um processo relacionado ao HiveServer2. Se nenhum processo desse tipo aparecer, verifique os logs de inicialização do HiveServer2 para confirmar se ele iniciou corretamente.

  • Verifique se o grupo de segurança permite tráfego na porta 10000.

    No console EMR, na página Basic Information do cluster de destino, clique em no link ao lado de Cluster Security Group. Na página Security Group Details, verifique se a porta 10000 está aberta. Caso não esteja, abra a porta 10000. Para mais informações, consulte Manage security groups.

Como me conectar ao Hive se tanto a alta disponibilidade quanto a alta segurança estiverem habilitadas?

Se a alta disponibilidade e a alta segurança estiverem habilitadas, obtenha primeiro as credenciais Kerberos (crie um principal e adquira um TGT) e, em seguida, conecte-se ao Hive usando JDBC. Para mais informações, consulte HiveServer2 load balancing.