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] Trivial Update of "Hbase/JSONRest" by Michael Gottesman
Date Sun, 10 Aug 2008 13:46:50 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 Michael Gottesman:
http://wiki.apache.org/hadoop/Hbase/JSONRest

------------------------------------------------------------------------------
  == Preface ==
- ==== What is JSON Rest? ====
+ === What is JSON Rest? ===
- JSON Rest is at its core a Jetty Http Java Servlet that gives end users complete access
to the HBase Client API that one communicates with through a combination of URLs, JSON, and
Query Strings. It supports Filters, Scanners, and Transactions (Transactions are available
with the correct patches), something which no other HBase client framework does at the moment.
But most importantly to my altruistic side, it is a very modular framework so that it is easy
for any end user to modify it to his/her needs. This was a fun project for me. I hope it is
useful to you.
+ JSON Rest is at its core a Jetty Http Java Servlet that gives end users complete access
to the HBase Client API through a combination of URLs, JSON, and Query Strings. It supports
Filters, Scanners, and Transactions (Transactions are available with the correct patches),
something which no other HBase client framework does at the moment. But most importantly to
my altruistic side, it is a very modular framework so that it is easy for any end user to
modify it to his/her needs. This was a fun project for me. I hope it is useful to you.
- ==== Why JSON? ====
+ === Why JSON? ===
  This is a question that I get asked a lot. Why JSON? Why not Thrift? Why not Protocol Buffers?
The answer I give is simple: The Internet. JSON is native to the web and native to the browser.
By using JSON as your message format, you allow for easy interoperability with any/all platforms
currently in the marketplace. Thus you maximize your potential user base through familiarity,
ease of use, and parser availability for the end user.
+ ----
  == Usage ==
- ==== Get ====
+ === Get ===
- ===== Database =====
+ ==== Database ====
  The current supported Database GET queries are:
-  * GetDatabaseMetadata
+  * getDatabaseMetadata - returns the master's connection status and a list of all database
tables and their columns. To call this query send a simple get request to:
+ {{{
+ '/'
+ }}}
+ aka, server root. The server will then respond with JSON of the form:
+ {{{
+ TOPLEVEL => {"master_running":BOOLEAN,"tables":[TABLE, TABLE, ...]}
  
+ BOOLEAN := true|false
- ===== Table ======
- ===== Row =====
- ===== Cell =====
- ===== Timestamp =====
- ==== Post ====
- ==== Put ====
- ==== Delete ====
- ==== Transactions ====
- ==== Scanners ====
  
+ TABLE := {"name":"STRING", "columns":[COLUMN, COLUMN, ...]}
+ 
+ COLUMN := {
+              "name":"STRING",
+              "bloomfilter":BOOLEAN,
+              "time_to_live":INTEGER,
+              "in_memory":BOOLEAN,
+              "max_versions":INTEGER,
+              "compression":STRING, *NOTE* this is an enum defined in class HColumnDescriptor.CompressionType.
+              "max_value_length":INTEGER,
+              "block_cache_enabled":BOOLEAN
+           }
+ }}}
+ 
+ ==== Table ====
+ ==== Row ====
+ ==== Cell ====
+ ==== Timestamp ====
+ === Post ===
+ === Put ===
+ === Delete ===
+ === Transactions ===
+ === Scanners ===
+ 

Mime
View raw message