全部產品
Search
文件中心

E-MapReduce:串連Kyuubi

更新時間:Dec 05, 2024

本文為您介紹如何使用Beeline或JDBC串連Kyuubi。使用Beeline串連Kyuubi時,您可以使用Zookeeper串連,或者直接連接Kyuubi服務。

前提條件

  • 已建立DataLake類型的叢集,並選擇了Kyuubi服務,具體操作請參見建立叢集

  • 已登入叢集,具體請參見登入叢集

使用Beeline串連Kyuubi

您可以用Hive Beeline或者Kyuubi Beeline工具(EMR叢集上的工具名稱為kyuubi-beeline)串連Kyuubi Server。以下樣本使用Kyuubi Beeline工具串連Kyuubi。

普通叢集

  • 方式一:使用Zookeeper串連Kyuubi服務(推薦)

    kyuubi-beeline -n user1 \
      -u "jdbc:hive2://master-1-1:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi"
  • 方式二:直接連接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

高安全叢集

在進行串連前,請先執行kinit命令進行身分識別驗證。有關Kerberos的更多資訊,請參見Kerberos基礎使用

  • 方式一:使用Zookeeper串連Kyuubi服務(推薦)

    kyuubi-beeline -n user1 \
      -u "jdbc:hive2://master-1-1:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi;principal=kyuubi/_HOST@EMR"
  • 方式二:直接連接Kyuubi服務

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

使用JDBC Driver串連Kyuubi

以下為您介紹Java應用如何使用Hive提供的JDBC Driver串連Kyuubi。程式碼範例以Maven工程為例。

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

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

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

參考文檔