jdbc通过hive server2访问hive

来源:互联网 发布:pc视频编辑软件 编辑:程序博客网 时间:2024/05/17 23:09

1,pom配置:


<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.6.0-cdh5.8.3</version>
</dependency>
<dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>2.6.0-cdh5.8.3</version>
</dependency>
<dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-jdbc</artifactId>
        <version>1.1.0-cdh5.8.3</version>
</dependency>
 


2,java代码:


package com.ibeifeng.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MyJdbc {
 private static String driverName = "org.apache.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);
   }
   //replace "hive" here with the name of the user the queries should run as
   Connection con = DriverManager.getConnection("jdbc:hive2://192.168.1.109:10000/default", "", "");
   Statement stmt = con.createStatement();
   String tableName = "test";
   stmt.execute("drop table if exists " + tableName);
   stmt.execute("create table " + tableName + " (key int, value string)");
   // show tables
   String sql = "show tables '" + tableName + "'";
   System.out.println("Running: " + sql);
   ResultSet 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);
//    stmt.execute(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));
//    }
 }
}



原创粉丝点击