jdbc通过hive server2访问hive
Posted forrestxingyunfei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdbc通过hive server2访问hive相关的知识,希望对你有一定的参考价值。
1,pom配置:
<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));
//
以上是关于jdbc通过hive server2访问hive的主要内容,如果未能解决你的问题,请参考以下文章