Question: Im working on a project in which i got to use hbase.The project is in java based. I need to know what is the best hbase client api for java.

Answer: 
HBase has its own java client in core library. It covers pretty much everything. (Got connection as well). If you need a asynchronous client You can check [asyncbase](https://github.com/stumbleupon/asynchbase) from stumbleupon, which is a solid client. But it's filter support is limited.(it has basic filters though, and they work like charm). If you are using java I wouldn't recommend using via rest.
Kundera is a object-datastore mapping tool for Hbase alongwith Cassandra and MongoDB. 

Some of the salient features are:

* JPA 2.0 compliant.
* Column/ column family indexing using lucene.
* Support for entity relationships and JPA queries.
* Cross-datastore persistence

It's hosted here: 
<https://github.com/impetus-opensource/Kundera>