java.lang.nosuchmethoderror:org.apache.hive.service.cli.tableschema

bnl4lu3b  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(829)

我正在尝试使用java连接到hive。这是我的密码。我在氧气中运行。我的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");      
    String sql = "select * from tablename";
    Statement stmt = con.createStatement();             
    stmt.executeQuery(sql);     
}

我可以使用上述方法创建表并将数据插入表中。但每当我试图从表中检索数据时,它就会抛出以下错误。

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hive.service.cli.TableSchema.<init>(Lorg/apache/hive/service/cli/thrift/TTableSchema;)

下面是我正在使用的jar。他们有错误中给出的类。

commons-logging-1.2
curator-client-2.0.0-incubating
hadoop-common-2.7.3
hadoop-common-3.1.0
hive-exec-3.0.0
hive-jdbc-1.1.0
hive-metastore-3.0.0
hive-service-1.1.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

请帮帮我。

6ovsh4lw

6ovsh4lw1#

错误可能是由不兼容的库版本引起的。您的项目中有相同libs的多个jar版本。因此,在运行时,不清楚是否使用了开关1。去掉重复的,只使用更新版本的 hadoop-common , hive-service .

相关问题