簡體   English   中英

java.lang.NoSuchFieldError:創建Hive表時的類型

[英]java.lang.NoSuchFieldError: type When creating a Hive table

我在代碼中創建一個配置單元表:

HiveInterface client = new HiveServer.HiveServerHandler();
client.execute("CREATE TABLE u_data (" +
        "userid INT," +
        " movieid INT," +
        " rating INT" +
        ")" +
        " ROW FORMAT DELIMITED " +
        "FIELDS TERMINATED BY '\\t' " +
        "STORED AS TEXTFILE;");

運行execute命令時,出現此異常:

java.lang.NoSuchFieldError: type
at org.apache.hadoop.hive.ql.parse.HiveLexer.mKW_CREATE(HiveLexer.java:1601)
at org.apache.hadoop.hive.ql.parse.HiveLexer.mTokens(HiveLexer.java:6360)
at org.antlr.runtime.Lexer.nextToken(Lexer.java:85)
at org.antlr.runtime.BufferedTokenStream.fetch(BufferedTokenStream.java:143)
at org.antlr.runtime.BufferedTokenStream.sync(BufferedTokenStream.java:137)
at org.antlr.runtime.CommonTokenStream.setup(CommonTokenStream.java:137)
at org.antlr.runtime.CommonTokenStream.LT(CommonTokenStream.java:94)
at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:546)
at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:437)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:417)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:337)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:889)
at org.apache.hadoop.hive.service.HiveServer$HiveServerHandler.execute(HiveServer.java:191)

我唯一能找到的線索是與antlr-*.jar相關的東西,我將它作為依賴項添加到pom.xml (最新版本)中。

注意 :服務器是獨立的,我以Java代碼啟動。

經過一些調查,並嘗試了多個antlr jars,我終於通過添加以下maven依賴關系解決了它:

<dependency>
   <groupId>org.antlr</groupId>
   <artifactId>antlr</artifactId>
   <version>3.0.1</version>
</dependency>

我的Hadoop jar版本為0.8.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM