1. 先在linux中启动hiveserver2
命令:hive --service hiverserver2
2. 使用Eclipse创建java项目,并在项目中导入以下jar包(可在hadoop/share/lib和hive/lib中找)
3. Hive的JDVC客户端操作步骤
4. Java代码
(1) JDBCUtils
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 帮助JDBC获取连接
* 以及释放资源
* @author Dell
*
*/
public class JDBCUtils {
// 注意:此处不能使用"org.apache.hive.jdbc.HiveDriver.class",否则会报错。
private static String driver = "org.apache.hive.jdbc.HiveDriver";
// hive默认的端口是10000,default是要连接的hive的数据库的名称
private static String url = "jdbc:hive2://192.168.137.189:10000/default";
// 注册驱动
static {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
}
// 获取连接
public static Connection getConnection() {
try {
return DriverManager.getConnection(url);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
// 释放资源
public static void realese(Connection conn, Statement st, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally {
rs = null; // 将某个对象设置为null,那么这个对象会迅速成为垃圾回收的对象
}
}
if (st != null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}finally {
st = null; // 将某个对象设置为null,那么这个对象会迅速成为垃圾回收的对象
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally {
conn = null; // 将某个对象设置为null,那么这个对象会迅速成为垃圾回收的对象
}
}
}
}
(2) HiveJDBCDemo
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import demo.utils.JDBCUtils;
public class HiveJDBCDemo {
public static void main(String[] args) {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
String sql = "select * from employee";
try {
// 获取连接
conn = JDBCUtils.getConnection();
// 创建运行环境
st = conn.createStatement();
// 运行HQL
rs = st.executeQuery(sql);
// 处理数据
while(rs.next()) {
// 取出员工的姓名和薪水
String name = rs.getString(2);
int sal = rs.getInt(6);
System.out.println(name + "\t" + sal);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.realese(conn, st, rs);
}
}
}
5. 将此Java项目打包为jar包,传到linux系统上执行。