5

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

enter image description here But, I'm not able to perform query on them, it is the raising 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 have to do to perform a query on Drill, thanks in advance.

Ram Ghadiyaram
  • 28,239
  • 13
  • 95
  • 121
  • can you run this and see what it gives: select count(*) from hbase.\`students\`; – Srihari Karanth Dec 04 '16 at 09:31
  • thanks @SrihariKaranth, the student table contains 4 records, i just tried it with drill 1.6 and it working fine, as some blogs suggested that there are some problem with the dependency. – Amit Mandal Dec 04 '16 at 12:57
  • now my configurations are hadoop 2.7, hbase 1.2.4 and drill 1.6... there may be some issue with drill 1.8 with the same hbase and hadoop configuration... however I'll run the query you suggested and let you know... – Amit Mandal Dec 04 '16 at 13:01

2 Answers2

1

This issue is more related to Hbase.

com.google.common.base.Stopwatch class is present in guava jar.

The constructors are changed to package private at version 17 or 18.

Default constructor of Stopwatch class became private since Guava v.17 and marked deprecated even earlier.

seems like you are using latest version of guava, you could lower the version and try again which has suitable constructor.

If you are using maven/gradle you have to adjust dependencies that to fit aforementioned way.

Please have a look at this issue HBASE-14126 which was clearly explained

Community
  • 1
  • 1
Ram Ghadiyaram
  • 28,239
  • 13
  • 95
  • 121
  • dear Ram, I'm a new user and and that was my first question/post, so i cant acknowledge it at that time, it's not allowed (as my reputation is less then 15 at that time), now you can see the change... and thanks again for your response... – Amit Mandal Dec 18 '16 at 13:28
1

This worked for me:

Replace Guava 18 jar with Guava 16 jar in apache-drill-1.9.0/jars/3rdparty folder. You can find Guava 16 jar 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/