hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Hadoop Wiki] Update of "Hbase/ThriftApi" by JoelNothman
Date Tue, 07 Jul 2009 03:03:43 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification.

The following page has been changed by JoelNothman:
http://wiki.apache.org/hadoop/Hbase/ThriftApi

The comment on the change is:
Provide long-needed update and Python usage

------------------------------------------------------------------------------
  == Thrift API ==
  
+ The design documentation below is now outdated. The latest version of the Thrift API is
described by [http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=co
Hbase.thrift].
+ 
  This page discusses the effort of creating a Thrift client API. The reasoning behind creating
a Thrift-based API is that Thrift is both cross-platform and more lightweight than REST for
many operations.
+ 
+ == Using the API ==
+ 
+ === Generating a Thrift client package ===
+ 
+ Once Thrift is installed, use:
+ 
+ {{{thrift --gen [lang] [hbase-root]/src/java/org/apache/hadoop/hbase/thrift/Hbase.thrift}}}
+ 
+ ''lang'' should be one of {{{java}}}, {{{cpp}}}, {{{rb}}}, {{{py}}}, {{{perl}}} or another
language listed in Hbase.thrift.
+ 
+ This will produce a directory called gen-py, gen-rb, etc. containing the appropriate model.
+ 
+ === Starting the Thrift server ===
+ 
+ The Thrift server can be started with:
+ 
+ {{{[hbase-root]/bin/hbase thrift start}}}
+ 
+ === Using with Python ===
+ 
+ See [http://yannramin.com/2008/07/19/using-facebook-thrift-with-python-and-hbase/ Yann's
tutorial] (July 2008).
+ 
+ To acquire a Thrift client instance:
+ {{{
+ from thrift.transport import TSocket, TTransport
+ from thrift.protocol import TBinaryProtocol
+  
+ from hbase import Hbase
+ from hbase.ttypes import *
+ 
+ transport = TSocket.TSocket('localhost', 9090)
+ transport = TTransport.TBufferedTransport(transport)
+ transport.open()
+ protocol = TBinaryProtocol.TBinaryProtocol(transport)
+ 
+ client = Hbase.Client(protocol)
+ }}}
+ 
+ 
+ Use {{{help(client)}}} to view the Python API.
+ 
  
  == Data Type Spec ==
  This section contains the definitions of Thrift data types needed for communication.
@@ -122, +166 @@

  }}}
  
  
- == Comments ==
+ == Comments on API design ==
  
  Bryan, I think you may want to use the "binary" type instead of "string" to avoid any possible
encoding issues. "binary" is a raw raw byte[] in Java. -- Chad
  

Mime
View raw message