【版本信息】
hive 0.10.0
hadoop 2.6.0
java 8
【问题详细描述】
当在hive的shell中查询sdb中的数据的时候报错:
hive> select * from sdb_tab11;
OK
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hive.serde2.ColumnProjectionUtils.getReadColumnIDs(Lorg/apache/hadoop/conf/Configuration;)Ljava/util/List;
at com.sequoiadb.hive.SdbHiveInputFormat.getRecordReader(SdbHiveInputFormat.java:35)
at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:410)
at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:486)
at org.apache.hadoop.hive.ql.exec.FetchOperator.pushRow(FetchOperator.java:466)
at org.apache.hadoop.hive.ql.exec.FetchTask.fetch(FetchTask.java:136)
at org.apache.hadoop.hive.ql.Driver.getResults(Driver.java:1387)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:270)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:412)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:755)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:613)
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:497)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
复制代码
其中 sdb_tab11这个表中是有数据的,在sdb中能够查询到,已将 SequoiaDB目录下的 hadoop/hive-sequoiadb-apache.jar 和 java/sequoiadb.jar拷贝到 hive/lib 安装目录下;
这是hive-site.xml
hive.aux.jars.path
file:///usr/local/hive/hive-0.10.0/lib/hive-sequoiadb-apache.jar,file:///usr/local/hive/hive-0.10.0/lib/sequoiadb.jar
Sequoiadb store handler jar file
hive.auto.convert.join
false
复制代码
其中这个jar文件在hdfs中也有,路径一样