• Hive的两种操作模式


    Hive的客户端操作

    Hive的客户端操作

    • 通过JDBC操作Hive
    • 通过Thrift操作Hive
    通过JDBC操作Hive
    • 首先 Hive 启动远程服务

      hive --service hiveserver
    • 需要的jar包

    public class TestQuery {
    
        private static final String dirver ="org.apache.hadoop.hive.jdbc.HiveDriver";
        private static final String url ="jdbc:hive://192.168.131.111:10000/default";
    
        @Test
        public void testQuery() throws Exception{
    
            Class.forName(dirver);
            String sql = "select * from emp";
            Connection conn = DriverManager.getConnection(url);
            Statement st = conn.createStatement();
            ResultSet rs = st.executeQuery(sql);
    
            while(rs.next()){
                //不能写列名
                String ename = rs.getString(2);
                int sal = rs.getInt(6);
                System.out.println(ename+"	"+sal);
            }
            JDBCUtil.release(conn, st, rs);
        }
    }
    通过Thrift操作Hive
    package com.zd.thrift;
    
    import java.util.List;
    import org.apache.hadoop.hive.service.HiveClient;
    import org.apache.thrift.protocol.TBinaryProtocol;
    import org.apache.thrift.protocol.TProtocol;
    import org.apache.thrift.transport.TSocket;
    import org.junit.Test;
    
    public class TestThrift {
        @Test
        public void testThrift() throws Exception{
    
            //创建socket连接
            TSocket socket = new TSocket("192.168.131.111",10000);
            TProtocol prot = new TBinaryProtocol(socket);
    
            //创建HiveClient
            HiveClient client = new HiveClient(prot);
    
            //打开socket通信
            socket.open();
    
            //执行HQL语句
            //client.execute("desc emp");
            client.execute("select * from emp where deptno=10");
    
            //取出返回的结果
            List<String> list = client.fetchAll();
    
            //结果集以行为单位   被封装进List
            for (String string : list) {
                System.out.println(string);
            }
            socket.close();
        }
    }
  • 相关阅读:
    交易是如何被创建和打包的7
    重回js--js中的块作用域
    重回js--立即执行函数
    解决json跨域
    h5开发安卓ios坑总结
    关于html中对换行的处理
    说说display-inline
    笔记--学习git命令(基本命令版)
    写在最开始
    替换多个文件中的部分内容Demo
  • 原文地址:https://www.cnblogs.com/itboys/p/11210800.html
Copyright © 2020-2023  润新知