我使用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)
请提前告知我要对Drill执行查询所要做的事情。
答案 0 :(得分:2)
com.google.common.base.Stopwatch
类。
构造函数在版本17或18时更改为包私有。
Stopwatch
类的默认构造函数变为private
,因为Guava v.17并且甚至更早被标记为已弃用。
好像你正在使用最新版本的番石榴,你可以降低版本并再试一次,它有合适的构造函数。
如果您正在使用maven / gradle,则必须调整符合上述方式的依赖关系。
请查看此问题HBASE-14126已明确解释
答案 1 :(得分:1)
这对我有用:
在apache-drill-1.9.0 / jars / 3rdparty文件夹中用Guava 16 jar替换Guava 18 jar。你可以在这里找到Guava 16 jar: