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操作
| Method | URL | 機能 |
|---|---|---|
| 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]/regions | Retrieve a list of the regions for this table so that you can efficiently split up the work |
Data操作
| Method | URL | 機能 |
|---|---|---|
| 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検索
| Method | URL | 機能 |
|---|---|---|
| POST PUT | /[table_name]/scanner | Request 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 |
