JDBC链接Hive
使用JDBC链接Hive测试样例以及maven配置
测试代码
package mytest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class HiveConnection {
public static void main(String[] args) {
String driver = "org.apache.hive.jdbc.HiveDriver";
String url = "jdbc:hive2://host:10000/default";
String userName= "";
String password = "";
PreparedStatement pt = null;
ResultSet rs = null;
try {
Connection con = getConnection(driver, url, userName, password);
String sql = "select * from tableName limit 10";
pt = con.prepareStatement(sql);
rs = pt.executeQuery();
while(rs.next()){
System.out.println(rs.getString(1));
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
/**
* 获取数据库连接
*
* @param driver
* 驱动名称
* @param url
* jdbc连接URL
* @param usr
* 用户名
* @param passwd
* 密码
* @return
* @throws ClassNotFoundException
* @throws SQLException
*/
public static Connection getConnection(String driver, String url, String usr, String passwd)
throws ClassNotFoundException, SQLException {
Connection con = null;
System.out.println("driver---:" + driver);
System.out.println("url---:" + url);
try {
Class.forName(driver);
con = DriverManager.getConnection(url, usr, passwd);
} catch (ClassNotFoundException e) {
System.out.println("JDBC驱动存在问题!");
System.out.println(e.getMessage());
throw e;
} catch (SQLException e) {
System.out.println("创建数据库连接失败!");
System.out.println(e.getMessage());
throw e;
}
return con;
}
}
如果对hive设置了用户权限则需求输入用户名密码,进行链接,默认一般是没有用户名密码的
maven配置
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>1.1.0</version>
</dependency>