Apache Drill查询HBase表

Ami*_*dal 5 hadoop hbase apache-drill

我使用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)
Run Code Online (Sandbox Code Playgroud)

请提前告知我要对Drill执行查询所要做的事情.

Ram*_*ram 1

这个问题与Hbase比较相关。

com.google.common.base.Stopwatch类存在于番石榴罐中。

在版本 17 或 18 中,构造函数已更改为包私有。

自 Guava v.17Stopwatch起,类的默认构造函数就被标记为已弃用,甚至更早。private

看来您正在使用最新版本的番石榴,您可以降低版本并重试具有合适的构造函数。

如果您使用 maven/gradle,则必须调整依赖项以适应上述方式。

请看一下这个问题HBASE-14126,它已经解释得很清楚了