使用Java JDBC连接到Hive时出现NoSuchMethodError

时间:2018-07-13 10:14:43

标签: java hive

我正在尝试使用Java连接到Hive服务器。 我正在Eclipse Oxygen中运行代码,并安装了Java 8。

private static String driverName = "org.apache.hive.jdbc.HiveDriver";    
public static void main(String[] args) throws SQLException 
{
    try 
    {
        Class.forName(driverName);
    } 
    catch (ClassNotFoundException e) 
    {
        e.printStackTrace();
        System.exit(1);
    }
    Connection con = DriverManager.getConnection("jdbc:hive2://<IP>:port/database", "username", "password");        
    Statement stmt = con.createStatement();      
    String sql = "show tables";
    stmt.executeQuery(sql);
}

这些是我正在使用的外部库。

commons-logging-1.2
curator-client-2.0.0-incubating
hadoop-common-3.1.0
hive-exec-3.0.0
hive-jdbc-3.0.0
hive-metastore-3.0.0
hive-service-3.0.0
hive-service-rpc-2.1.0
httpclient-4.5.6
httpcore-4.4.10
libfb303-0.9.3
libthrift-0.9.3
log4j-1.2.17
slf4j-api-1.8.0-beta2

运行代码时,出现以下错误。

java.lang.NoSuchMethodError: org.apache.hive.service.auth.HiveAuthFactory.getSocketTransport(Ljava/lang/String;II)Lorg/apache/thrift/transport/TTransport

我不知道是什么导致了错误。我尝试了不同版本的罐子。我缺少图书馆吗?请帮我。

0 个答案:

没有答案