联接HIVE SERVER客户端的三种方式

本文介绍了连接Hive服务器的三种方式:命令行模式、JDBC模式和JAVA客户端。命令行模式直接通过IP和端口连接;JDBC模式通过设置驱动和连接URL执行SQL操作,但功能和易用性相对较弱;JAVA客户端则使用Hive API创建,支持修改参数和UDAF,提供了更好的交互体验。

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

在Hive/bin 目录下输入./hive --service hiveserver 代表hive启动了服务器模式。

和普通模式不同的是,这时hive同时启动了一个名为thrift的服务器。

你不用去研究这个服务器的原理,认为他是一个传递信息的人就好,你可以通过他向hive发送命令,然后hive再把命令送给hadoop。

1.命令行模式:

   ./hive -h127.0.0.1 -p10000

   简单明了,IP和端口。

2.JDBC模式:

     名字很糊人的。
     private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";

     @BeforeClass
     public static void beforeclass() throws SQLException,
            ClassNotFoundException {
            Class.forName(driverName);
             Connection con = DriverManager.getConnection(
                  "jdbc:hive://127.0.0.1:10000/default", "", "");
             stmt = con.createStatement();
     }

     @Test
    public void dropTable() {
        try {
            res = stmt.executeQuery("drop table " + tablename);
             res = stmt.executeQuery("drop table " + basetable);
            // res = stmt.executeQuery("drop table " + agecount);
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

上面就是一段通过JDBC删除表的代码。

和传统的JDBC相比,HIVE的JDBC功能性和易用性我都觉得差很多。

只不过HIVE的语句风格和传统SQL很像,所以人们才发明了这个东西。有点不伦不类。在UADF方面还不是很好,不是很喜欢。


3.JAVA客户端

        TTransport transport;
        TProtocol protocol;
        HiveClient client;
        transport = new TSocket("localhost", 10000);
        protocol = new TBinaryProtocol(transport);
        client = new HiveClient(protocol);
        transport.open();
        client.execute("select usercount(userid) from user3");
        transport.close();
       
       很明显,我们调用HIVE的API生成了一个JAVA的HIVE客户端,这个客户端和命令行的客户端效果是一样的。
       改参数,UDAF 都很完美的支持,我比较喜欢这个。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值