I attached a patch file and a thrift Java runtime jar file that implements a Thrift service for Hbase. The patch includes the Hbase.thrift interface defintion, a ThriftServer class which can be launched from './bin/hbase thrift', and some example clients which are in the src/examples/thrift directory. I'm also attaching the Hbase.thrift file directly so it's easy to view for comments.
Here's what's included in the package.html:
- 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.
"Thrift is a software framework for scalable cross-language services
development. It combines a powerful software stack with a code generation
engine to build services that work efficiently and seamlessly between C++,
Java, Python, PHP, and Ruby. Thrift was developed at Facebook, and we are now
releasing it as open source." For additional information, see
http://developers.facebook.com/thrift/. Facebook has announced their intent to
migrate Thrift into Apache Incubator.
The 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 are checked into SVN under the
The files were generated by running the commands:
thrift -strict -java Hbase.thrift
mv gen-java/org/apache/hadoop/hbase/thrift/generated .
rm -rf gen-java
The 'thrift' binary is the Thrift compiler, and it is distributed as a part of
the Thrift package. Additionally, specific language runtime libraries are a
part of the Thrift package. A version of the Java runtime is checked into SVN
under the hbase/lib directory.
The version of Thrift used to generate the Java files is revision 746 from the
The ThriftServer is run like:
./bin/hbase thrift [-h|--help] [-p|--port PORT]
The default port is 9090.