Tous les produits
Search
Centre de documentation

E-MapReduce:Hive connection methods

Dernière mise à jour :Aug 09, 2026

Connectez-vous à Hive dans E-MapReduce via le client Hive, Beeline ou JDBC.

Prérequis

  • Vous avez créé un cluster avec le service Hive activé (par exemple, DataLake ou Custom) et activé l'option Assign Public Network IP pour le nœud maître afin d'autoriser la connexion à distance. Pour plus d'informations sur la création d'un cluster, consultez la rubrique Créer un cluster.

    • Clusters courants : clusters pour lesquels les options Kerberos Authentication et High Service Availability ne sont pas activées.

    • Clusters haute sécurité : clusters créés avec l'option Kerberos Authentication activée.

    • Clusters haute disponibilité : clusters créés avec l'option High Service Availability activée. Notez que lors de la création d'un cluster haute disponibilité, vous devez également sélectionner le service ZooKeeper.

  • Vous vous êtes connecté au nœud maître du cluster. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.

Notes

  • master-1-1 et <Master node public IP address> : nom d'hôte et adresse IP publique du nœud maître. Vous trouverez ces informations sur la page Nodes du cluster dans la console EMR. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.

    En général, le nom d'hôte du nœud maître est master-1-1. Si votre cluster est un cluster Hadoop, le nom d'hôte est emr-header-1.

  • Par défaut, HiveServer2 ne valide pas les noms d'utilisateur et les mots de passe. Pour activer l'authentification par nom d'utilisateur et mot de passe, activez l'authentification LDAP. Pour plus d'informations, consultez la rubrique Utiliser l'authentification LDAP.

Procédure

Clusters courants

Se connecter à l'aide du client Hive

  1. Exécutez la commande suivante pour vous connecter à Hive.

    hive
  2. Facultatif : exécutez quit; ou exit; pour quitter Hive.

Se connecter à l'aide du client Beeline

  1. Exécutez la commande suivante pour vous connecter à Hive.

    beeline -u jdbc:hive2://master-1-1:10000
  2. Facultatif : exécutez !quit ou !exit pour quitter Beeline.

Se connecter à l'aide de JDBC

Important

Assurez-vous d'avoir installé un environnement Java et des outils de développement, et configuré les variables d'environnement correspondantes.

  1. Configurez les dépendances du projet (hadoop-common et hive-jdbc) dans le fichier pom.xml. Exemple :

    <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>

    Assurez-vous que les versions de hadoop-common et de hive-jdbc correspondent aux versions de Hadoop-Common et de Hive dans votre cluster EMR. Vous pouvez consulter ces informations logicielles dans l'onglet Basic Information sous la section Software Information du cluster cible dans la console EMR.

  2. Écrivez le code pour vous connecter à HiveServer2 et manipuler les données des tables Hive. Exemple de code :

    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));
            }
        }
    }
    Remarque

    Cette méthode nécessite que le port 10000 soit ouvert. Pour plus d'informations, consultez la rubrique Gérer les groupes de sécurité.

  3. Compilez le projet (pour générer un fichier JAR) et téléchargez le fichier JAR dans l'environnement d'exécution.

    Important

    Le fichier JAR dépend de hadoop-common et de hive-jdbc. Si ces dépendances ne sont pas disponibles dans l'environnement d'exécution, téléchargez-les et configurez-les, ou intégrez-les dans le fichier JAR. Si l'une des dépendances est manquante, vous obtiendrez l'une des erreurs suivantes :

    • Dépendance hadoop-common manquante : java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration

    • Dépendance hive-jdbc manquante : java.lang.ClassNotFoundException: org.apache.hive.jdbc.HiveDriver

    Dans cet exemple, le fichier JAR généré est nommé emr-hiveserver2-1.0.jar. Téléchargez ce fichier JAR sur le nœud maître de votre cluster E-MapReduce.

  4. Testez si le fichier JAR s'exécute correctement.

    Important

    Le serveur exécutant le fichier JAR et le cluster E-MapReduce doivent se trouver dans le même VPC et le même groupe de sécurité. S'ils se trouvent dans des VPC ou des environnements réseau différents, connectez-vous via l'adresse IP publique ou utilisez les produits de mise en réseau Alibaba Cloud pour établir une connectivité interne. Pour tester la connectivité réseau :

    • Réseau public : telnet public IP address of master-1-1 10000

    • Réseau privé : telnet private IP address of master-1-1 10000

    java -jar emr-hiveserver2-1.0.jar

Clusters haute sécurité

Se connecter à l'aide du client Hive

  1. Exécutez la commande suivante pour démarrer l'outil Kerberos admin.local.

    • Si vous vous connectez au nœud master-1-1 où s'exécute le serveur Kerberos Key Distribution Center (KDC) en tant qu'utilisateur root, vous pouvez exécuter la commande suivante pour accéder directement à l'outil d'administration.

      kadmin.local

      La sortie suivante indique que vous avez accédé à l'interface de ligne de commande kadmin.local :

      Authenticating as principal hadoop/admin@EMR.C-85D4B8D74296****.COM with password.
      kadmin.local:
    • Si vous vous connectez à un autre nœud ou utilisez une passerelle, exécutez la commande suivante pour accéder à l'outil d'administration.

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

      Si vous utilisez le KDC fourni par E-MapReduce, tenez compte des paramètres suivants :

      • <admin-user> : la valeur est fixée à root/admin.

      • <admin-password> : dans la console E-MapReduce, accédez à l'onglet Configure du service Kerberos pour obtenir la valeur du paramètre admin_pwd.

      La sortie suivante indique que vous avez accédé à l'interface de ligne de commande kadmin :

      Authenticating as principal root/admin with password.
      kadmin:
  2. Exécutez la commande suivante pour créer un principal nommé test.

    Dans cet exemple, le mot de passe est 123456.

    addprinc -pw 123456 test

    La sortie suivante indique que le principal a été créé avec succès :

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

    Notez le nom d'utilisateur et le mot de passe. Vous en aurez besoin pour créer un ticket d'octroi de ticket (TGT).

    Exécutez la commande quit pour quitter l'outil Kerberos admin.local.

  3. Connectez-vous à la machine sur laquelle vous souhaitez exécuter le client Hive, puis exécutez les commandes suivantes pour créer l'utilisateur test et basculer vers celui-ci.

    useradd test
    su test
  4. Exécutez la commande suivante pour créer un TGT.

    kinit

    Appuyez sur Entrée et saisissez le mot de passe de l'utilisateur test. Dans cet exemple, le mot de passe est 123456.

  5. Exécutez la commande hive pour accéder au client Hive.

    hive

Se connecter à l'aide du client Beeline

  1. Exécutez la commande suivante pour démarrer l'outil Kerberos admin.local.

    • Si vous vous connectez au nœud master-1-1 où s'exécute le serveur Kerberos Key Distribution Center (KDC) en tant qu'utilisateur root, vous pouvez exécuter la commande suivante pour accéder directement à l'outil d'administration.

      kadmin.local

      La sortie suivante indique que vous avez accédé à l'interface de ligne de commande kadmin.local :

      Authenticating as principal hadoop/admin@EMR.C-85D4B8D74296****.COM with password.
      kadmin.local:
    • Si vous vous connectez à un autre nœud ou utilisez une passerelle, exécutez la commande suivante pour accéder à l'outil d'administration.

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

      Si vous utilisez le KDC fourni par E-MapReduce, tenez compte des paramètres suivants :

      • <admin-user> : la valeur est fixée à root/admin.

      • <admin-password> : dans la console E-MapReduce, accédez à l'onglet Configure du service Kerberos pour obtenir la valeur du paramètre admin_pwd.

      La sortie suivante indique que vous avez accédé à l'interface de ligne de commande kadmin :

      Authenticating as principal root/admin with password.
      kadmin:
  2. Exécutez la commande suivante pour créer un principal nommé test.

    Dans cet exemple, le mot de passe est 123456.

    addprinc -pw 123456 test

    La sortie suivante indique que le principal a été créé avec succès :

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

    Notez le nom d'utilisateur et le mot de passe. Vous en aurez besoin pour créer un ticket d'octroi de ticket (TGT).

    Exécutez la commande quit pour quitter l'outil Kerberos admin.local.

  3. Connectez-vous à la machine sur laquelle vous souhaitez exécuter le client Hive, puis exécutez les commandes suivantes pour créer l'utilisateur test et basculer vers celui-ci.

    useradd test
    su test
  4. Exécutez la commande suivante pour créer un TGT.

    kinit

    Appuyez sur Entrée et saisissez le mot de passe de l'utilisateur test. Dans cet exemple, le mot de passe est 123456.

  5. Exécutez la commande suivante pour accéder au client Hive.

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

    Remplacez les espaces réservés suivants par vos informations :

    • master-1-1.c-56187feb57f0****.cn-hangzhou.emr.aliyuncs.com : nom d'hôte complet, incluant le nom de domaine. Vous pouvez obtenir le nom d'hôte en exécutant la commande hostname -f sur le nœud où s'exécute le service HiveServer2 (généralement le nœud master-1-1).

    • EMR.c-56187feb57f0****.COM : nom du realm. Dans la console E-MapReduce, accédez à l'onglet Configure du service Kerberos pour trouver la valeur du paramètre realm.

Clusters haute disponibilité

Se connecter à l'aide du client Beeline

Selon le mode de découverte de service sélectionné (zooKeeper ou multiServers), utilisez la commande correspondante pour configurer la connexion Beeline.

  • Utilisation du mode zooKeeper

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

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

FAQ

Que faire si j'obtiens une erreur « port inaccessible » lors de la connexion à Hive ?

Si vous rencontrez une erreur de port inaccessible, vérifiez les points suivants :

  • Confirmez que le service HiveServer2 est en cours d'exécution.

    Sur le nœud HiveServer2, exécutez la commande suivante pour vérifier si un processus de service écoute sur le port spécifié (10000 par défaut).

    netstat -tulnp | grep 10000

    Assurez-vous que la sortie inclut un processus de service lié à HiveServer2. Si aucun processus de ce type n'apparaît, vérifiez les journaux de démarrage de HiveServer2 pour confirmer qu'il a démarré correctement.

  • Vérifiez si le groupe de sécurité autorise le trafic sur le port 10000.

    Dans la console EMR, sur la page Basic Information du cluster cible, cliquez sur le lien situé à côté de Cluster Security Group. Sur la page Security Group Details, vérifiez que le port 10000 est ouvert. Si ce n'est pas le cas, ouvrez le port 10000. Pour plus d'informations, consultez la rubrique Gérer les groupes de sécurité.

Comment me connecter à Hive si la haute disponibilité et la haute sécurité sont toutes deux activées ?

Si la haute disponibilité et la haute sécurité sont toutes deux activées, obtenez d'abord les identifiants Kerberos (créez un principal et acquérez un TGT), puis connectez-vous à Hive en utilisant JDBC. Pour plus d'informations, consultez la rubrique Équilibrage de charge HiveServer2.