本文为您介绍如何使用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

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

参考文档