首先引入jar文件,最好是使用idea开发工具,因为他写dependency有提示
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>1.2.1</version>
</dependency>
编写程序
package com.bonc.audit.home.action;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class test {
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
public static void main(String[] args) throws Exception {
try{
Class.forName(driverName);
}catch(Exception e){
e.printStackTrace();
}
String url = "jdbc:hive2://192.168.124.140:10000/default";
String user = "root";
String password = "luxing";
Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement();
String sql = "select * from student";
ResultSet res = stmt.executeQuery(sql);
if(res.next()){
System.out.println(res.getString(1));
}
}
}
首先要启动hdfs和hive
再运行 报错
Exception in thread "main" java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://192.168.124.140:10000/default: java.net.ConnectException: Connection refused: connect
这个是因为hive中的hiveServer2没有启动起来,启动的命令是: hive --service hiveserver2
再执行会报错
Hive2- User root is not allowed to impersonate anonymous
在hadoo中的core-site.xml中添加下面内容
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
添加之后再执行就,应该就不会报错了,使用idea导入了jar之后,我用的是eclipse写的程序