apache drill query hbase表

2j4z5cfb  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(399)

我正在使用drill embedded执行sql,我可以看到hbase中的表。这是终端输出。。

但是,我无法对它们执行查询,这会引发以下错误:

0: jdbc:drill:zk=local> SELECT * FROM students;

Error: SYSTEM ERROR: IllegalAccessError: tried to access method
com.google.common.base.Stopwatch.<init>()V from class
org.apache.hadoop.hbase.zookeeper.MetaTableLocator

[Error Id: 9c656263-c774-4aaf-a789-d4e374adb69b on localhost:31010]
(state=,code=0)

请让我知道我要做什么,以执行钻查询,提前感谢。

wmomyfyw

wmomyfyw1#

这对我有用:
将apache-drill-1.9.0/jars/3rdparty文件夹中的guava 18 jar替换为guava 16 jar。您可以在这里找到Guava16罐:
https://github.com/google/guava/wiki/release16
资料来源:https://blogs.perficient.com/delivery/blog/2017/05/15/how-to-configure-tableau-and-drill-to-show-data-from-hbase-hive/

k5ifujac

k5ifujac2#

这个问题更多地与hbase有关。 com.google.common.base.Stopwatch 课程在Guavajar里。

构造函数在版本17或18中更改为包私有。
的默认构造函数 Stopwatch 班级变成 private 自从guava v.17和marked更早就被弃用了。
似乎您使用的是最新版本的guava,您可以降低版本,然后再次尝试使用合适的构造函数。
如果您使用的是maven/gradle,那么您必须调整依赖项以适应前面提到的方式。
请看一下hbase-14126这个问题,这个问题解释得很清楚

相关问题