You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bigtop.apache.org by "Anatoli Fomenko (JIRA)" <ji...@apache.org> on 2013/05/02 02:46:16 UTC

[jira] [Commented] (BIGTOP-756) Provide the thrift API interface file in the HBase packages

    [ 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