Apache Drill query HBase table

I use drill-embedded to execute SQL, I see tables in HBase. Here is the terminal output.

enter image description here But I can not fulfill the request for them, this causes the following error:

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) 

Please let me know what I need to do to complete the Drill request, thanks in advance.

+5
source share
2 answers

This problem is more related to Hbase.

com.google.common.base.Stopwatch class is present in the guava bank.

Designers change to a private package in version 17 or 18.

The default constructor of the Stopwatch class has become private since Guava v.17 and is deprecated even earlier.

it looks like you are using the latest version of guava, you can omit the version and try again with a suitable constructor.

If you are using maven / gradle, you need to configure the dependencies that match the above method.

Please take a look at this HBASE-14126 question , which has been clearly explained.

+2
source

This worked for me:

Replace the jar of Guava 18 with the jar of Guava 16 in the apache-drill-1.9.0 / jars / 3rdparty folder. Here you will find 16 cans of Guava here:

https://github.com/google/guava/wiki/Release16

Source: https://blogs.perficient.com/delivery/blog/2017/05/15/how-to-configure-tableau-and-drill-to-show-data-from-hbase-hive/

0
source

Source: https://habr.com/ru/post/1260777/


All Articles