Hive进阶_Hive的客户端操作

启动远程客户端 # hive --service hiveserver2
获取连接-〉创建运行环境-〉执行HQL-〉处理结果-〉释放资源

工具类

 1 package demo.utils;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.sql.Statement;
 8 
 9 
10 public class JDBCUtils {
11     private static String driverString = "org.apache.hive.jdbc.HiveDriver";
12     private static String urlString = "jdbc:hive2://sd-9c1f-2eac:10000/default";
13     static {
14         try {
15             Class.forName(driverString);
16         } catch (ClassNotFoundException e) {
17             throw new ExceptionInInitializerError(e);
18         }
19     }
20 
21 
22     public static Connection getConnection() {
23         try {
24             return DriverManager.getConnection(urlString);
25         } catch (SQLException e) {
26             e.printStackTrace();
27         }
28         return null;
29     }
30     
31     public static void release (Connection conn, Statement st, ResultSet rs){
32         if (rs!=null){
33             try{
34                 rs.close();
35             }catch(SQLException e){
36                 e.printStackTrace();
37             }finally{
38                 rs=null;
39             }
40         }
41         if (st!=null){
42             try{
43                 st.close();
44             }catch(SQLException e){
45                 e.printStackTrace();
46             }finally{
47                 st=null;
48             }
49         }
50         if (conn!=null){
51             try{
52                 conn.close();
53             }catch(SQLException e){
54                 e.printStackTrace();
55             }finally{
56                 conn=null;
57             }
58         }
59     }
60 
61 }
JDBCUtil.java

测试类

 1 package demo.hive;
 2 
 3 import java.sql.Connection;
 4 import java.sql.ResultSet;
 5 import java.sql.SQLException;
 6 import java.sql.Statement;
 7 
 8 import demo.utils.JDBCUtils;
 9 
10 public class HiveJDBCDemo {
11     public static void main(String[] args) {
12         Connection conn=null;
13         Statement st=null;
14         ResultSet rs=null;
15         String sql="select * from sampledata";
16         conn=JDBCUtils.getConnection();
17         try {
18             st=conn.createStatement();
19             rs = st.executeQuery(sql);
20             while(rs.next()){
21                 String sid = rs.getString(1);
22                 String sname = rs.getString(2);
23                 String gender = rs.getString(3);
24                 System.out.println(sid+" "+sname+" "+gender);
25             }
26         } catch (SQLException e) {
27             e.printStackTrace();
28         }finally{
29             JDBCUtils.release(conn, st, rs);
30         }
31         
32     }
33 
34 
35 }
HiveJDBCDemo.java
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/PL62716/workspace/HiveDemo/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/PL62716/workspace/HiveDemo/lib/slf4j-log4j12-1.7.22.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
1 Tom  M
2 Mary F
3 Jerry M
4 Rose M
5 Mike F

add hive/lib->all jar and hadoop->share->hadoop->common->hadoop-common.jar to project build path.

原文地址:https://www.cnblogs.com/liupuLearning/p/6347636.html