Interface of a class that will export metrics about Thrift to hadoop's metrics2.
Factory that will be used to create metrics sources for the two diffent types of thrift servers.
A BlockingQueue reports waiting time in queue and queue length to ThriftMetrics.
Converts a Hbase.Iface using InvocationHandler so that it reports process time of each call to ThriftMetrics.
A TThreadedSelectorServer.Args that reads hadoop configuration
This class will coalesce increments from a thift server if hbase.regionserver.thrift.coalesceIncrement is set to true.
Class used to create metrics sources for Thrift and Thrift2 servers.
Hadoop 2 version of MetricsThriftServerSource
A bounded thread pool server customized for HBase.
This class is for maintaining the various statistics of thrift server and publishing them through the metrics interfaces.
ThriftServer- this class starts up a Thrift server which implements the Hbase API specified in the Hbase.thrift IDL file.
ThriftServerRunner - this class starts up a Thrift server which implements the Hbase API specified in the Hbase.thrift IDL file.
The HBaseHandler is a glue object that connects Thrift RPC calls to the HBase client API primarily defined in the HBaseAdmin and HTable objects.
"Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml."
Important note: We tried to deprecate this Thrift interface and replace it with the Interface defined over in the thrift2 package only this package will not die. Folks keep adding to it and fixing it up so its around for another while until someone takes command and drives this package out of existence replacing it w/ an Interface that better matches the hbase API (this package was modelled on old HBase API long since dropped).
The org.apache.hadoop.hbase.thrift.generated.Hbase.Iface HBase API is defined in the
file Hbase.thrift (Click the former to see the
thrift generated documentation of thrift interface). A server-side implementation of the API is in
ThriftServer. The generated interfaces,
types, and RPC utility files reside in the
To start ThriftServer, use:
./bin/hbase-daemon.sh start thrift
To stop, use:
./bin/hbase-daemon.sh stop thriftThese are the command line arguments the Thrift server understands in addition to
HBase currently uses version 0.9.0 of Apache Thrift.
The files were generated by running the commands under the hbase checkout dir:
thrift -strict --gen java:hashcode ./hbase-server/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift # Move the generated files into place their expected location under hbase mv gen-java/org/apache/hadoop/hbase/thrift/generated/* hbase-server/src/main/java/org/apache/hadoop/hbase/thrift/generated/ # Remove the gen-java file made by thrift 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 included in HBase via Maven.
Copyright © 2014 The Apache Software Foundation. All Rights Reserved.