[ 
https://issues.apache.org/jira/browse/BIGTOP-756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13647140#comment-13647140
 ] 

Anatoli Fomenko commented on BIGTOP-756:
----------------------------------------

Some background:

* Package org.apache.hadoop.hbase.thrift
** Description: Provides an HBase Thrift service. This directory contains a 
Thrift interface definition file for an HBase RPC service and a Java server 
implementation.
** The org.apache.hadoop.hbase.thrift.generated.Hbase.Iface HBase API is 
defined in the file Hbase.thrift. A server-side implementation of the API is in 
ThriftServer. The generated interfaces, types, and RPC utility files reside in 
the org.apache.hadoop.hbase.thrift.generated package.
* Package org.apache.hadoop.hbase.thrift2 Description
** Provides an HBase Thrift service. This package contains a Thrift interface 
definition file for an HBase RPC service and a Java server implementation. 
There are currently 2 thrift server implementations in HBase, the packages:
*** org.apache.hadoop.hbase.thrift: This may one day be marked as depreceated.
*** org.apache.hadoop.hbase.thrift2: i.e. this package. This is intended to 
closely match to the HTable interface and to one day supercede the older thrift 
(the old thrift mimics an API HBase no longer has).
** The HBase API is defined in the file hbase.thrift. A server-side 
implementation of the API is in 
org.apache.hadoop.hbase.thrift2.ThriftHBaseServiceHandler with the server 
boiler plate in org.apache.hadoop.hbase.thrift2.ThriftServer. The generated 
interfaces, types, and RPC utility files are checked into SVN under the 
org.apache.hadoop.hbase.thrift2.generated directory.

* The Thrift API files can be generated by running the commands under the hbase 
checkout dir (in this example, for Java):
{code}
  thrift -strict --gen java:hashcode 
./hbase-server/src/main/resources/org/apache/hadoop/hbase/[thrift|thrift2]/Hbase.thrift
{code}
* To install the generated API, move the generated files into place their 
expected location under hbase:
{code}
  mv gen-java/org/apache/hadoop/hbase/[thrift|thrift2]/generated/* 
hbase-server/src/main/java/org/apache/hadoop/hbase/[thrift|thrift2]/generated/
{code}
* To clean up,remove the gen-java file made by thrift:
{code}
  rm -rf gen-java
{code}

Suggestion:

* From above notes, the suggested file {code} 
./src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift {code} along 
with its more modern counterpart {code} 
./src/main/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift {code} is 
required to build multi-language Thrift clients to access HBase via Thrift 
server.
I would suggest, dittoing Roman's proposal, to make these files available as 
follows:
{code}
/usr/lib/hbase/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift
/usr/lib/hbase/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift
{code}
                
> Provide the thrift API interface file in the HBase packages
> -----------------------------------------------------------
>
>                 Key: BIGTOP-756
>                 URL: https://issues.apache.org/jira/browse/BIGTOP-756
>             Project: Bigtop
>          Issue Type: Improvement
>          Components: General
>    Affects Versions: 0.5.0
>            Reporter: Harsh J
>            Assignee: Roman Shaposhnik
>            Priority: Minor
>             Fix For: 0.6.0
>
>
> HBase tarballs have this file:
> ./src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift
> Which is essential to developers writing own libraries to talk with the 
> thrift HBase server, and for other (dev-oriented) purposes.
> Currently, this isn't installed anywhere by RPMs; we could probably package 
> it to aid developers. For non-Java HBase users, this is akin to looking for a 
> jar.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to