-
首先启动 Hive 的远程服务:hiveserver2 &
-
所需 jar 包的 pom 文件如下:
<dependencies> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>2.3.0</version> </dependency> </dependencies>
-
为了避免在程序运行时出现以下错误:
修改 hadoop 配置文件$HADOOP_HOME/etc/hadoop/core-site.xml
加入如下配置项:<property> <name>hadoop.proxyuser.root.hosts</name> <value>*</valule> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</valule> </property>
-
连接 Hive 的 JDBC 工具类:
package hive; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /* * 工具类: * 1、获取链接 * 2、释放资源: Connection Statement ResultSet */ public class JDBCUtils { // Hive的驱动 private static String driver = "org.apache.hive.jdbc.HiveDriver"; // Hive的url地址 private static String url = "jdbc:hive2://192.168.0.1:10000/default"; // 注册数据库的驱动 static { try { Class.forName(driver); } catch (Exception ex) { throw new ExceptionInInitializerError(ex); } } // 获取数据库Hive的连接 public static Connection getConnection() { try { return DriverManager.getConnection(url, "root", "root"); } catch (SQLException e) { e.printStackTrace(); } return null; } // 释放资源 public static void release(Connection conn, Statement st, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (st != null) { try { st.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
-
Demo 程序:
package hive; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; public class HiveDemo { public static void main(String[] args) { // 查询员工信息 String sql = "select * from emp"; Connection conn = null; PreparedStatement pst = null; ResultSet rs = null; try { conn = JDBCUtils.getConnection(); pst = conn.prepareStatement(sql); rs = pst.executeQuery(); while (rs.next()) { String ename = rs.getString(2); double sal = rs.getDouble(6); System.out.println(ename + "\t" + sal); } } catch (Exception ex) { ex.printStackTrace(); } finally { JDBCUtils.release(conn, pst, rs); } } }
-
运行结果:
使用JDBC操作Hive
最新推荐文章于 2021-07-09 14:23:50 发布