HIVE JDBC

本文介绍如何启动 HiveServer 和 Hive Web Interface,并通过一个示例 Java 类 HiveJdbcClient 展示如何利用 JDBC 连接 Hive,执行基本的 SQL 操作,包括创建表、加载数据、查询等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步 要开 HIVE server 

//jdbc 端口
hive --service hiveserver
//web 端口
hive --service hwi


//如果后台运行 就应该加

nohup hive --service hiveserver
nohup hive --service hwi


//后台后 要kill的话 只能 用 kill

netstat -ap |grep 9999
netstat -nlp | grep 10000

kill -9 ***

 

 

然后就是 连JDBC了

package org.apache.hadoop.examples;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;


public class HiveJdbcClient {
  private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";

  /**
 * @param args
 * @throws SQLException
   */
  public static void main(String[] args) throws SQLException {
      try {
      Class.forName(driverName);
    } catch (ClassNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      System.exit(1);
    }
    Connection con = DriverManager.getConnection("jdbc:hive://10.221.62.68:10000/default", "", "");
    Statement stmt = con.createStatement();
    String tableName = "testHiveDriverTable";
    stmt.executeQuery("drop table " + tableName);
    ResultSet res = stmt.executeQuery("create table " + tableName + " (key int, value string)");
    // show tables
    String sql = "show tables '" + tableName + "'";
    System.out.println("Running: " + sql);
    res = stmt.executeQuery(sql);
    if (res.next()) {
      System.out.println(res.getString(1));
    }
    // describe table
    sql = "describe " + tableName;
    System.out.println("Running: " + sql);
    res = stmt.executeQuery(sql);
    while (res.next()) {
      System.out.println(res.getString(1) + "\t" + res.getString(2));
    }

    // load data into table
    // NOTE: filepath has to be local to the hive server
    // NOTE: /tmp/a.txt is a ctrl-A separated file with two fields per line
    String filepath = "/tmp/a.txt";
    sql = "load data local inpath '" + filepath + "' into table " + tableName;
    System.out.println("Running: " + sql);
    res = stmt.executeQuery(sql);

    // select * query
    sql = "select * from " + tableName;
    System.out.println("Running: " + sql);
    res = stmt.executeQuery(sql);
    while (res.next()) {
      System.out.println(String.valueOf(res.getInt(1)) + "\t" + res.getString(2));
    }

    // regular hive query
    sql = "select count(1) from " + tableName;
    System.out.println("Running: " + sql);
    res = stmt.executeQuery(sql);
    while (res.next()) {
      System.out.println(res.getString(1));
    }
  }
}

 

内容概要:本文深入解析了扣子COZE AI编程及其详细应用代码案例,旨在帮助读者理解新一代低门槛智能体开发范式。文章从五个维度展开:关键概念、核心技巧、典型应用场景、详细代码案例分析以及未来发展趋势。首先介绍了扣子COZE的核心概念,如Bot、Workflow、Plugin、Memory和Knowledge。接着分享了意图识别、函数调用链、动态Prompt、渐进式发布及监控可观测等核心技巧。然后列举了企业内部智能客服、电商导购助手、教育领域AI助教和金融行业合规质检等应用场景。最后,通过构建“会议纪要智能助手”的详细代码案例,展示了从需求描述、技术方案、Workflow节点拆解到调试与上线的全过程,并展望了多智能体协作、本地私有部署、Agent2Agent协议、边缘计算插件和实时RAG等未来发展方向。; 适合人群:对AI编程感兴趣的开发者,尤其是希望快速落地AI产品的技术人员。; 使用场景及目标:①学习如何使用扣子COZE构建生产级智能体;②掌握智能体实例、自动化流程、扩展能力和知识库的使用方法;③通过实际案例理解如何实现会议纪要智能助手的功能,包括触发器设置、下载节点、LLM节点Prompt设计、Code节点处理和邮件节点配置。; 阅读建议:本文不仅提供了理论知识,还包含了详细的代码案例,建议读者结合实际业务需求进行实践,逐步掌握扣子COZE的各项功能,并关注其未来的发展趋势。
### 使用 Hive JDBC 配置连接及示例代码 #### 1. 安装和配置 Cloudera Hive JDBC 驱动 为了实现 HiveJDBC 的集成,首先需要完成 Cloudera Hive JDBC 驱动的安装与配置。这通常涉及以下几个方面: - **下载驱动程序** 可以通过官方提供的链接下载 Hive JDBC Uber 驱动文件 `hive-jdbc-uber-2.6.5.0-292.jar`[^3]。 - **设置环境变量** 将下载好的 JAR 文件放置到项目的类路径下或者指定的库目录中。如果是在 Java 应用中运行,则可以通过 `-cp` 参数加载该 JAR 文件。 - **验证驱动可用性** 确认驱动已成功加载并能够正常工作。此过程可能需要测试简单的数据库查询操作来确认连通性[^1]。 #### 2. 构建连接字符串 构建用于连接 Hive 数据库的 URL 是使用 JDBC 接口的关键部分之一。标准的 Hive JDBC 连接字符串格式如下所示[^4]: ```plaintext jdbc:hive2://<host>:<port>/dbName;sess_var_list?hive_conf_list#hive_var_list ``` 其中 `<host>` 表示 Hive Server 所在主机名或 IP 地址;`<port>` 默认为 10000 或者由具体部署决定;而 `/dbName` 则指定了要访问的具体数据库名称。此外还可以附加一些额外属性以便进一步定制会话行为[^2]。 #### 3. 编写 Java 示例代码 下面给出一段完整的基于上述理论编写的 Java 示例代码片段,展示如何利用 JDBC 来执行基本 SQL 查询命令: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class HiveJdbcClient { private static String driverName = "org.apache.hive.jdbc.HiveDriver"; public static void main(String[] args) throws Exception { try { Class.forName(driverName); // 替换以下参数为你自己的Hive服务信息 Connection con = DriverManager.getConnection( "jdbc:hive2://localhost:10000/default", "", ""); Statement stmt = con.createStatement(); String tableName = "test_hive_jdbc"; stmt.executeQuery("drop table if exists " + tableName); // 清理旧表 System.out.println("Creating table..."); stmt.executeUpdate("create table " + tableName+"(key int, value string)"); System.out.println("Inserting data into the table..."); stmt.execute("insert into "+tableName+" values(1,'value1')"); stmt.execute("insert into "+tableName+" values(2,'value2')"); ResultSet res = stmt.executeQuery("select * from " + tableName); while (res.next()) { // 输出结果集中的每一行数据 System.out.println(res.getInt(1)+"\t"+res.getString(2)); } } catch(Exception e){ e.printStackTrace(); throw new RuntimeException(e.getMessage()); } } } ``` 以上代码展示了创建表格、插入记录以及读取数据的过程。注意替换 `"jdbc:hive2://localhost:10000/default"` 中的相关字段以匹配实际使用的服务器地址和其他必要选项。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值