使用配置单元查询hbase时的NoSuchMethodError

时间:2014-09-08 11:36:33

标签: hadoop hive hbase

尝试使用hive查询hbase表时出现此错误:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hive.serde2.ColumnProjectionUtils.getReadColumnIDs(Lorg/apache/hadoop/conf/Configuration;)Ljava/util/ArrayList;
            at org.apache.hadoop.hive.hbase.HiveHBaseTableInputFormat.getRecordReader(HiveHBaseTableInputFormat.java:94)
            at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:471)
            at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:561)
            at org.apache.hadoop.hive.ql.exec.FetchOperator.pushRow(FetchOperator.java:534)
            at org.apache.hadoop.hive.ql.exec.FetchTask.fetch(FetchTask.java:137)
            at org.apache.hadoop.hive.ql.Driver.getResults(Driver.java:1519)
            at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:285)
            at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
            at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423)
            at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:792)
            at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686)
            at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:483)
            at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

我使用的是Hive 0.13.1,Hadoop 2.4.1,Hbase 0.98.5。

我使用以下语句创建了一个表:

CREATE TABLE hlogcount(rowkey STRING, date DATE, time STRING, logtype STRING, type STRING, value INT) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ('hbase.columns.mapping' = ':key,f:c1,f:c2,f:c3,f:c4,f:c5') TBLPROPERTIES ('hbase.table.name' = 'hlogcount');

该表已成功创建,可以在show tables;

的输出中看到

hive lib已经有一个hive-serde-0.13.1.jar,我也尝试过使用hive-serde-0.10.0,但它也有相同的结果。

0 个答案:

没有答案