使用JDBC连接HIVE报错:SASL authentication not complete

如下图所示,当连接hive并计算出结果后报错:
使用JDBC连接HIVE报错:SASL authentication not complete_第1张图片
通过查找资料找到原因:
上述图中能有结果输出,说明在输出代码以上都是没有问题,说明在输出代码后面出现了问题
代码如下

 Class.forName("org.apache.hive.jdbc.HiveDriver");
	  
	  //获取连接
	  Connection conn = DriverManager.getConnection("jdbc:hive2://192.168.115.129:10000/","root","root");
	  //获取表述
	  Statement stat = conn.createStatement();
	  //获取结果
	  ResultSet rs = stat.executeQuery(" select * from orders");
	  while(rs.next()) {
		  String oid = rs.getString("oid");
		  System.out.println(oid);
	  }
	  
	  conn.close();
	  rs.close();
	  stat.close();
	  }

可以看出 在输出代码后面就是只有3句关闭各种流的操作,上述中首先将Connection 关闭了,导致后面的Statement 和ResultSet 关闭过程中报错
所以正确的代码为:

public static void main(String[] args) throws ClassNotFoundException, SQLException {
	//注册驱动
	  Class.forName("org.apache.hive.jdbc.HiveDriver");
	  
	  //获取连接
	  Connection conn = DriverManager.getConnection("jdbc:hive2://192.168.115.129:10000/","root","root");
	  //获取表述
	  Statement stat = conn.createStatement();
	  //获取结果
	  ResultSet rs = stat.executeQuery(" select * from orders");
	  while(rs.next()) {
		  String oid = rs.getString("oid");
		  System.out.println(oid);
	  }
	  
//	  conn.close();
//	  rs.close();
//	  stat.close();
	  rs.close();
	  stat.close();
	  conn.close();
}

然后运行代码没有报错
使用JDBC连接HIVE报错:SASL authentication not complete_第2张图片

你可能感兴趣的:(使用JDBC连接HIVE报错:SASL authentication not complete)