Tous les produits
Search
Centre de documentation

E-MapReduce:Connect to Kyuubi

Dernière mise à jour :Aug 09, 2026

Connectez-vous à Kyuubi depuis un client en ligne de commande avec Beeline, ou depuis une application Java avec un pilote JDBC (Java Database Connectivity).

Prérequis

Avant de commencer, vérifiez que vous disposez des éléments suivants :

Connexion avec Beeline

Les clusters EMR incluent le client Beeline pour Kyuubi kyuubi-beeline. Vous pouvez également utiliser Hive Beeline. Les exemples ci-dessous utilisent kyuubi-beeline.

Deux méthodes de connexion sont possibles : la découverte de services via ZooKeeper et la connexion directe. Nous recommandons la découverte via ZooKeeper pour garantir la haute disponibilité.

Clusters standard

ZooKeeper (recommandé)

kyuubi-beeline -n user1 \
  -u "jdbc:hive2://master-1-1:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi"
Paramètre Description
master-1-1:2181 Hôte et port ZooKeeper
serviceDiscoveryMode=zooKeeper Active la découverte de services via ZooKeeper
zooKeeperNamespace=kyuubi Chemin ZooKeeper où Kyuubi enregistre ses instances

Connexion directe

kyuubi-beeline -n user1 -u "jdbc:hive2://master-1-1:10009/"

Pour soumettre un fichier SQL sans ouvrir de session interactive :

kyuubi-beeline -n user1 -u "jdbc:hive2://master-1-1:10009/" -f query1.sql

Clusters hautement sécurisés

Les clusters hautement sécurisés utilisent l'authentification Kerberos. Avant la connexion, exécutez kinit pour obtenir un ticket d'accès (TGT) auprès du centre de distribution de clés Kerberos (KDC). Le client Beeline utilise ce TGT pour s'authentifier auprès de Kyuubi. Pour configurer Kerberos, voir la rubrique Opérations de base sur Kerberos.

ZooKeeper (recommandé)

kyuubi-beeline -n user1 \
  -u "jdbc:hive2://master-1-1:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi;principal=kyuubi/_HOST@EMR"

Connexion directe

kyuubi-beeline -n user1 -u "jdbc:hive2://master-1-1:10009/;principal=kyuubi/_HOST@EMR"

Le paramètre principal=kyuubi/_HOST@EMR indique le principal de service Kerberos du serveur Kyuubi.

Connexion avec un pilote JDBC

Pour connecter une application Java à Kyuubi, suivez ces étapes :

  1. Ajoutez la dépendance Hive JDBC à votre projet Maven.

  2. Construisez l'URL de connexion JDBC adaptée à votre type de cluster.

  3. Chargez le pilote et exécutez une requête.

Étape 1 : Ajout de la dépendance Maven

Ajoutez la dépendance suivante à votre fichier pom.xml :

<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>2.3.9</version>
</dependency>

Étape 2 : Construction de l'URL JDBC

Le format de l'URL JDBC est le suivant :

jdbc:hive2://<host>:<port>/<database>[;<properties>]
Type de cluster URL JDBC
Cluster standard jdbc:hive2://master-1-1:10009/default;
Cluster hautement sécurisé jdbc:hive2://master-1-1:10009/default;principal=kyuubi/_HOST@EMR

Étape 3 : Chargement du pilote et exécution d'une requête

Tous les exemples utilisent la classe de pilote org.apache.hive.jdbc.HiveDriver.

Clusters standard

import java.sql.*;

public class JDBCTest {
    private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    private static String kyuubiJdbcUrl = "jdbc:hive2://master-1-1:10009/default;";

    public static void main(String[] args) throws Exception {
        Class.forName(driverName);
        // Open a connection and run a query
        try (Connection conn = DriverManager.getConnection(kyuubiJdbcUrl);
             Statement st = conn.createStatement();
             ResultSet res = st.executeQuery("show databases")) {
            while (res.next()) {
                System.out.println(res.getString(1));
            }
        }
    }
}

Clusters hautement sécurisés

Avant d'exécuter l'application, lancez kinit pour vous authentifier auprès de Kerberos.

import java.sql.*;

public class JDBCTest {
    private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    private static String kyuubiJdbcUrl = "jdbc:hive2://master-1-1:10009/default;principal=kyuubi/_HOST@EMR";

    public static void main(String[] args) throws Exception {
        Class.forName(driverName);
        // Open a connection and run a query
        try (Connection conn = DriverManager.getConnection(kyuubiJdbcUrl);
             Statement st = conn.createStatement();
             ResultSet res = st.executeQuery("show databases")) {
            while (res.next()) {
                System.out.println(res.getString(1));
            }
        }
    }
}

Références