hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Purtell <apurt...@apache.org>
Subject Re: Update table schema via REST
Date Wed, 08 Aug 2012 18:35:11 GMT
Addressing for table creation or schema update (PUT or POST), schema
query (GET), or delete (DELETE)

    path := '/' <table> / 'schema'

So that should be  /TransactionREST/schema

However, I'd recommend that you not take administrative actions via
the REST API. Use the HBase shell instead. Consider them DBA-type

    - Andy

On Wed, Aug 8, 2012 at 11:15 AM, Corbett Martin <comartin@nhin.com> wrote:
> According to the Stargate documentation (http://wiki.apache.org/hadoop/Hbase/Stargate)
I should be able to perform a POST operation to perform a table schema update.  The docs say
to supply a "well formed schema fragment" for a table schema update.  My issue is the test
code below always returns:
> <body><h2>HTTP ERROR 405</h2>
> <p>Problem accessing /TransactionREST/. Reason:
> <pre>Method Not Allowed</pre>
> What am I missing?  I cannot find any errors in the log files.
> It's worth mentioning that I've been able to successfully create a table via the REST
api but now I want to use the api to make a table schema change, like in this example I want
to add a new column-family to a table.
> class AlterTableExampleREST {
>       private static final String ALTER_TABLE =
>             "{\"name\":\"TransactionREST\",\"ColumnSchema\":[{\"name\":\"foo\"}]}";
>       public void modifyTable() throws IOException {
>             // Setup a Cluster list adding all known REST server hosts
>             Cluster cluster = new Cluster();
>             cluster.add("", 8080);
>             // Create Client to handle HTTP communication
>             Client client = new Client(cluster);
>             Response response = client.post("/TransactionREST/", "application/json",
>                   Bytes.toBytes(ALTER_TABLE));
>             if(response != null) {
>                   System.out.println("response code: " + response.getCode());
>                   if(response.hasBody()) {
>                         System.out.println("reponse body: " + Bytes.toString(response.getBody()));
>                   }
>             }
>       }
> }
> Thanks in advance!
> ________________________________
> This message and its contents (to include attachments) are the property of National Health
Systems, Inc. and may contain confidential and proprietary information. This email and any
files transmitted with it are intended solely for the use of the individual or entity to whom
they are addressed. You are hereby notified that any unauthorized disclosure, copying, or
distribution of this message, or the taking of any unauthorized action based on information
contained herein is strictly prohibited. Unauthorized use of information contained herein
may subject you to civil and criminal prosecution and penalties. If you are not the intended
recipient, you should delete this message immediately and notify the sender immediately by
telephone or by replying to this transmission.

View raw message