通过jdbc连接到配置单元时出现异常

编程入门 行业动态 更新时间:2024-10-24 18:16:58
本文介绍了通过jdbc连接到配置单元时出现异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

Connection con = DriverManager.getConnection

下面是我在使用jdbc连接连接配置单元时遇到的异常。 (jdbc:hive:// localhost:10000 / default,hive,);

错误:

线程main中的异常java.lang.NoSuchMethodError:org.apache.thrift.protocol.TProtocol.getScheme()Ljava / lang / Class; at org.apache.hadoop.Tervice.ThriftHive $ execute_args.write(ThriftHive.java:1076) at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:63) at org.apache.hadoop.hive.service.ThriftHive $ Client.send_execute(ThriftHive.java:110) at org.apache.hadoop.hive.service.ThriftHive $ Client.execute(ThriftHive.java: 102) at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:187) at org.apache.hadoop.hive.jdbc.HiveStatement.execute(HiveStatement.java: (HiveConnection.java:126) at org.apache.hadoop.hive.jdbc.HiveConnection。< init>(HiveConnection .java:121) at org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:104) at java.sql.DriverManager.getConnection(DriverManager.java:620)在java.sql.DriverManager.getConnection(DriverManager.java:200)在HiveJdbcClient.main(HiveJdbcClient .java:24)

libthrift-0.9中的类 TProtocol.java。 0.jar 没有方法 getScheme()。

任何人都可以请让我知道我需要使用哪个Jar文件。

谢谢。

解决方案

请尝试下面的代码....

package com.services.connections; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; $ b public class ConnectHive { public static void main(String [] args)throws SQLException,ClassNotFoundException { // TODO自动生成的方法存根字符串connectionURL =jdbc:hive:// localhost:9999 / javatesting; 字符串drivername =org.apache.hadoop.hive.jdbc.HiveDriver; String username =; String password =; 尝试{ Class.forName(drivername); catch(ClassNotFoundException e) { // TODO自动生成的catch块 e.printStackTrace(); System.exit(1); } 尝试{ Connection con = DriverManager.getConnection(connectionURL,username,password); if(con!= null) { System.out.println(Connected); } else { System.out.println(未连接); } Statement stmt = con.createStatement(); // select * query String sql; ResultSet res; sql =select * from javatesting.testdata; System.out.println(Running:+ sql); res = stmt.executeQuery(sql); while(res.next()) { System.out.println(String.valueOf(res.getString(1))+\ t+ res.getString(2 )); catch(SQLException se) { se.printStackTrace(); } } }

Below is the exception I'm facing while trying to connect hive using jdbc connection.

Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/default", "hive", "");

Error:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.thrift.protocol.TProtocol.getScheme()Ljava/lang/Class; at org.apache.hadoop.hive.service.ThriftHive$execute_args.write(ThriftHive.java:1076) at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:63) at org.apache.hadoop.hive.service.ThriftHive$Client.send_execute(ThriftHive.java:110) at org.apache.hadoop.hive.service.ThriftHive$Client.execute(ThriftHive.java:102) at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:187) at org.apache.hadoop.hive.jdbc.HiveStatement.execute(HiveStatement.java:127) at org.apache.hadoop.hive.jdbc.HiveConnection.configureConnection(HiveConnection.java:126) at org.apache.hadoop.hive.jdbc.HiveConnection.<init>(HiveConnection.java:121) at org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:104) at java.sql.DriverManager.getConnection(DriverManager.java:620) at java.sql.DriverManager.getConnection(DriverManager.java:200) at HiveJdbcClient.main(HiveJdbcClient.java:24)

The class TProtocol.java in libthrift-0.9.0.jar doesn't have the method getScheme().

Can anyone please let me know which Jar file I need to use.

Thank you.

解决方案

Try the below code....

package com.services.connections; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ConnectHive { public static void main(String[] args) throws SQLException,ClassNotFoundException { // TODO Auto-generated method stub String connectionURL = "jdbc:hive://localhost:9999/javatesting"; String drivername = "org.apache.hadoop.hive.jdbc.HiveDriver"; String username = ""; String password = ""; try { Class.forName(drivername); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); System.exit(1); } try { Connection con = DriverManager.getConnection(connectionURL, username, password); if(con != null) { System.out.println("Connected"); } else { System.out.println("Not Connected"); } Statement stmt = con.createStatement(); // select * query String sql; ResultSet res; sql = "select * from javatesting.testdata"; System.out.println("Running: " + sql); res = stmt.executeQuery(sql); while (res.next()) { System.out.println(String.valueOf(res.getString(1)) + "\t" + res.getString(2)); } } catch(SQLException se) { se.printStackTrace(); } } }

更多推荐

通过jdbc连接到配置单元时出现异常

本文发布于:2023-11-23 21:06:42,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:连接到   单元   异常   jdbc

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!