Hbase:HTTP RESTからの利用

出典: LunaBiblos

Software > DataBase > KeyValueストア > Hbaseの利用 > Hbase:HTTP RESTからの利用

目次

概要

HTTP経由でDataをやりとりするRESTを利用してHbaseのDataを利用する方法の解説です。

利用準備

Hbaseが稼働しているPCにREST Serviceを起動します。完全分散環境のHbse Clusterを構築している場合、そのClusterに参加してるPCの何れかのPCでREST Serviceを立ち上げればそのPCだけがHTTP RESTを使える様になります。
Clusterに参加する全てのPCで、HTTP RESTを使いたい場合はClusterに参加する全てでServiceの立ち上げを行ってください。

方法

Hbaseが稼働しているLinuxにTeraTerm等を使ってHbaseのUserで接続し下記のコマンドを実行します。

./${HADOOP_HOME}/bin/hbase rest start

restの待ち受けが開始されたら下記のURLへアクセスします。

http://${restを起動したServerのIP}:60050/api/

Hbase上にDataがあれば、Table名とそのTableの情報の一覧が表示されます。Dataがない場合は「</table>」と表示されます。

各種操作

HTMLによる操作方法の解説です。URLは上記で紹介したREST用のURLの後ろに追加してください。

Table操作

MethodURL機能
POST/[table_name]text/XMLでTable定義を送信し、Tableを作ります
GET/[table_name]Tableに関するメタデータを取得
PUT/[table_name]Tableのスキーマを更新します
DELETE/[table_name]指定されたTableを削除します
POST/[table_name]/disable指定されたTableを無効にします
POST/[table_name]/enable指定されたTableを有効にします
GET/[table_name]/regionsRetrieve a list of the regions for this table so that you can efficiently split up the work

Data操作

MethodURL機能
GET/[table_name]/row/[row_key]指定されたKeyを持つ行から全項目のDataを取得します
GET/[table_name]/row/[row_key]?column=[column1]&column=[column2]・・・指定されたKeyを持つ行の、指定された項目の取得します
GET/[table_name]/row/[row_key]/timestamps指定されたKeyを持つ行から全項目のDataを取得します(未対応)
GET/[table_name]/row/[row_key]/[timestamp]指定されたKeyを持つ行の、指定されたTimestampのDataを取得します
POST
PUT
/[table_name]/row/[row_key]指定されたKeyのDataを更新します
POST
PUT
/[table_name]/row/[row_key]/[timestamp]指定されたKey、指定されたTimestampのDataを更新します
DELETE/[table_name]/row/[row_key]/指定されたKeyの全項目のDataを削除します。
DELETE/[table_name]/row/[row_key]?column=[column1]&column=[column2]・・・指定されたKeyの、指定された項目のDataを削除します。
DELETE/[table_name]/row/[row_key]/[timestamp]指定されたKeyの、指定されたTimestampの全項目のDataを削除します。

Data検索

MethodURL機能
POST
PUT
/[table_name]/scannerRequest that a scanner be created with the specified options. Returns a scanner ID that can be used to iterate over the results of the scanner
POST/[table_name]/scanner/[scanner_id]Return the current item in the scanner and advance to the next one. Think of it as a queue dequeue operation
DELETE/[table_name]/scanner/[scanner_id]Close a scanner

参考