Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HBase Support #3992

Closed
rawls238 opened this issue Nov 18, 2015 · 16 comments
Closed

HBase Support #3992

rawls238 opened this issue Nov 18, 2015 · 16 comments
Labels

Comments

@rawls238
Copy link

I've noticed a few tickets around HBase support but don't see anything that indicates that it is currently supported. If one doesn't exist, I would be happy to start working on one but wanted to see if I was missing something.

@cawallin
Copy link
Member

There currently isn't an HBase connector. At Teradata, @akshatnair did a prototype of connecting to HBase via a JDBC connection to Apache Phoenix, but it only had a single connection to HBase so it was pretty slow. The tricky part of making a performant HBase connector will be figuring out how to handle parallel connections to HBase. Let us know how it goes, and we're happy to help if you need some pointers!

@rawls238
Copy link
Author

rawls238 commented Dec 4, 2015

awesome thanks!

@spragues-trulia
Copy link

Christina alluded to this link in the presto-users google group today so figured i'd have look. Yeah, I think there's interest but hard to say who's got the time to actually do it. Damien Carol as well commented on the mail thread perhaps he has a vested interest too.
Sadly, i'm not a java/scala guy so there's not much i can physically do to help with coding but i can sure as heck help with testing!

@darionyaphet
Copy link

Apache Phoenix could execute SQL by it's JDBC implement . Maybe can use JDBC connect to access HBase . But sometimes Phoenix is very slow and join operation will make some trouble .

@BigDataDaddy
Copy link

Is there any progess or direction on this issue or an HBase connector in general?

@petroav
Copy link
Contributor

petroav commented May 18, 2016

It's not on the roadmap wiki and I haven't seen any mentions of such work on the mailing list so I don't think anyone is working on such a connector at the moment.

@raghuvineel
Copy link

@akshatnair @cawallin

Hi,
I am having a similar requirement of connecting presto to hbase using phoenix. But I am having hard time because of dependency issues. I could somehow build the source provided in guthub for presto-phoenix plugin, but I am facing missing classes etc during making connection. Could you please provide some pointers on it? Any help would be great!

regards,
Vineel.

@cawallin
Copy link
Member

cawallin commented Jun 2, 2016

Vineel -- what branch are you using? @akshatnair put together a prototype about a year ago, but Presto has changed so much since then that it would require a lot of effort to rebase it on the current Presto master.

@raghuvineel
Copy link

raghuvineel commented Jun 4, 2016

Hi Christina,

Thanks for the response. I somehow managed to connect the same. There were so many dependency problems I had to resolve. And in my environment HBase is based on 1.1.2 and presto 0.133. Presto is using guava-18.0. HBase is trying to access a class from guava, Stopwatch() which became protected from guava-13.0. Hence it was failing. HBase 1.3.0 has deprecated that code, but HBase 1.3.0 jars are not available in maven. Hence I rebuilt guava-18.0 by making the protected constructor to public and used the same.

Now I am able to successfully connect to Hbase from presto using phoenix plugin. May be I will upload my pom.xml with all dependencies here, but again guava-18.0 has to be somewhat customized to make it work.

Presto-0.133
HBase 1.1.2
Zookeeper 3.4.6

Thanks and regards,
Vineel.

@Vialentino
Copy link

Hi Vineel, I'm approaching the same problem as yours: do you have some pronto code to use?

@electrum
Copy link
Contributor

electrum commented Jun 16, 2016 via email

@raghuvineel
Copy link

raghuvineel commented Jun 30, 2016

@Vialentino

HI. Sorry for the delayed response. I had downloaded the source code from github and built using maven. All you need is configure pom.xml properly with all dependencies. Below is the pom.xml file I have used. You can download the source code for presto-phoenix plugin from this link. https://github.com/PayWithMyBank/presto-phoenix.

Just replace the pom.xml with the one below and build using maven (below command)

mvn clean install -Dcheckstyle.skip=true -DskipTests=true -Dair.check.skip-enforcer=ture -Dair.check.skip-duplicate-finder=true

Once you are done with the build, you have the required jar files inside folder target. You can copy this whole folder into presto/plugins and you should be able to connect from presto to Hbase.

Before trying that, you have to replace guava-18.0 in the plugin with customized one. That is, you have to build guava-18.0 similar like above, by downloading source from github and changing the constructor of the class StopWatch as public. This is the hack we tried to make it work for us. May be some latest versions of Hbase doesn't require this class at all. If you want, I have customized guava-18.0.jar already built.

I couldn't upload the pom in xml format. Hence copied it into text file.

pom.txt

@damiencarol
Copy link
Contributor

I plan to track my connector initiative here #6010

@danielhaviv
Copy link

Anyone tried to use HBaseStorageHandler?

@ganeshjothikumar
Copy link

We are exploring ways of trying to use Presto to query a HBase table. Can I get an update on where we are w.r.t HBase connector for Presto and any references for the same ?

@stale
Copy link

stale bot commented Aug 29, 2020

This issue has been automatically marked as stale because it has not had any activity in the last 2 years. If you feel that this issue is important, just comment and the stale tag will be removed; otherwise it will be closed in 7 days. This is an attempt to ensure that our open issues remain valuable and relevant so that we can keep track of what needs to be done and prioritize the right things.

@stale stale bot added the stale label Aug 29, 2020
@stale stale bot closed this as completed Sep 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests