すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Kyuubi への接続

最終更新日:Jan 11, 2025

このトピックでは、Beeline または Java Database Connectivity(JDBC)ドライバーを使用して Kyuubi に接続する方法について説明します。Beeline を使用して Kyuubi に接続する場合、ZooKeeper を使用して Kyuubi に接続するか、Kyuubi に直接接続できます。

前提条件

  • E-MapReduce(EMR)コンソールで、Kyuubi サービスを含む DataLake クラスタが作成されていること。詳細については、「クラスタの作成」をご参照ください。

  • DataLake クラスタにログオンしていること。詳細については、「クラスタへのログオン」をご参照ください。

Beeline を使用して Kyuubi に接続する

Hive Beeline または Kyuubi Beeline を使用して Kyuubi サーバーに接続できます。Kyuubi Beeline は、EMR クラスタでは kyuubi-beeline という名前です。次の例では、kyuubi-beeline を使用して Kyuubi に接続する方法について説明します。

共通クラスタ

  • (推奨)方法 1:ZooKeeper を使用して Kyuubi に接続する

    kyuubi-beeline -n user1 \
      -u "jdbc:hive2://master-1-1:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi"
  • 方法 2:Kyuubi に直接接続する

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

    次のコマンドを実行して、SQL ファイルを送信します。

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

高セキュリティクラスタ

Kyuubi に接続する前に、ID 認証のために kinit コマンドを実行します。Kerberos の詳細については、「Kerberos の基本操作」をご参照ください。

  • (推奨)方法 1:ZooKeeper を使用して Kyuubi に接続する

    kyuubi-beeline -n user1 \
      -u "jdbc:hive2://master-1-1:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi;principal=kyuubi/_HOST@EMR"
  • 方法 2:Kyuubi に直接接続する

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

JDBC ドライバーを使用して Kyuubi に接続する

次の例では、Maven プロジェクトを使用して、Hive の JDBC ドライバーを使用して Java アプリケーションを Kyuubi に接続する方法について説明します。

Maven 依存関係

Maven プロジェクトに次の依存関係を追加します。

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

サンプルコード

共通クラスタ

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;"; // Kyuubi JDBC URL

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

高セキュリティクラスタ

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"; // Kyuubi JDBC URL (High-security cluster)

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

参照