BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #53511同步于 2016/10/16
Java机器人发帖

jdbc连接hive报错SASL authentication not complete,求各位大

LittleStop
2016/10/16镜像同步0 回复
求各位大神指点~~具体情况如下描述: jdbc连接hiveserver2,hive-site.xml中配置 <property> <name>hive.server2.authentication</name> <value>nosasl</value> </property> Xshell中使用beeline命令:!connect jdbc:hive2://xxxxxx:10002/hive root root是可以成功连接并进行select等操作的,但是jdbc访问会报错。 代码如下: public class hiveExport { private static String driverName = "org.apache.hive.jdbc.HiveDriver"; private static String url = "jdbc:hive2://178.16.28.51:10002/default"; private static String user = "root"; private static String password = " root"; private static String sql = ""; private static ResultSet res; public static void main(String[] args) throws Exception { Connection conn = null; Statement stmt = null; String tableName = "cpu01"; try { conn = getConn(); stmt = conn.createStatement(); // 执行 select * query 操作 selectData(stmt, tableName); } catch (Exception e) { e.printStackTrace(); } finally { try { if (conn != null) { conn.close(); conn = null; } if (stmt != null) { stmt.close(); stmt = null; } } catch (SQLException e) { e.printStackTrace(); } } } private static Connection getConn() throws ClassNotFoundException, SQLException { Class.forName(driverName); Connection conn = DriverManager.getConnection(url, user, password); return conn; } private static void selectData(Statement stmt, String tableName) throws SQLException { sql = "select * from cpu01" ; System.out.println("Running:" + sql); try{ res = stmt.executeQuery(sql); }catch(Exception e){ e.printStackTrace(); } System.out.println("执行 select * query 运行结果:"); while (res.next()) { //System.out.println(res.getInt(1) + "\t" + res.getString(2)); } } } 控制台输出: log4j:WARN No appenders could be found for logger (org.apache.thrift.transport.TSaslTransport). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Running:select * from cpu01 执行 select * query 运行结果: java.sql.SQLException: org.apache.thrift.transport.TTransportException: SASL authentication not complete at org.apache.hive.jdbc.HiveStatement.closeClientOperation(HiveStatement.java:172) at org.apache.hive.jdbc.HiveStatement.close(HiveStatement.java:191) at com.sugon.bigdataTest.common.hiveExport.main(hiveExport.java:40) Caused by: org.apache.thrift.transport.TTransportException: SASL authentication not complete at org.apache.thrift.transport.TSaslTransport.write(TSaslTransport.java:444) at org.apache.thrift.transport.TSaslClientTransport.write(TSaslClientTransport.java:37) at org.apache.thrift.protocol.TBinaryProtocol.writeI32(TBinaryProtocol.java:163) at org.apache.thrift.protocol.TBinaryProtocol.writeMessageBegin(TBinaryProtocol.java:91) at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:62) at org.apache.hive.service.cli.thrift.TCLIService$Client.send_CloseOperation(TCLIService.java:449) at org.apache.hive.service.cli.thrift.TCLIService$Client.CloseOperation(TCLIService.java:441) at org.apache.hive.jdbc.HiveStatement.closeClientOperation(HiveStatement.java:166) ... 2 more
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。