Endpoint | HTTP 动作 | 描述 | 示例 |
---|---|---|---|
/version/cluster | GET | Hbase集群当前运行的版本 | curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/version/cluster" |
/status/cluster | GET | 集群状态 | curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/status/cluster" |
/ | GET | 列出所有非系统表 | curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/" |
Endpoint | HTTP 动作 | 说明 | 示例 |
/namespaces | GET | 列出所有的namespaces. | curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/namespaces/" |
/namespaces/namespace | GET | 显示指定的namespace.详情 | curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/namespaces/special_ns" |
/namespaces/namespace | POST | 创建一个新的namespace. | curl -vi -X POST \ -H "Accept: text/xml" \ "example.com:20550/namespaces/special_ns" |
/namespaces/namespace/tables | GET | 列出某个namespace下的所有的表. | curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/namespaces/special_ns/tables" |
/namespaces/namespace | PUT | 修改已经存在的namespace. 当前未使用. | curl -vi -X PUT \ -H "Accept: text/xml" \ "http://example.com:20550/namespaces/special_ns" |
/namespaces/namespace | DELETE | 删除一个namespace. namespace必须是空的. |
curl -vi -X DELETE \
-H "Accept: text/xml" \
"example.com:20550/namespaces/special_ns"
|
Endpoint | HTTP 动作 | 说明 | 示例 |
---|---|---|---|
/table/schema | GET | 给出指定表的模式描述. | curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/users/schema" |
/table/schema | POST | 创建新表,或使用提供的模式替换现有表的模式 | curl -vi -X POST \ -H "Accept: text/xml" \ -H "Content-Type: text/xml" \ -d '<?xml version="1.0" encoding="UTF-8"?><TableSchema name="users"><ColumnSchema name="cf" /></TableSchema>' \ "http://example.com:20550/users/schema" |
/table/schema | UPDATE | 使用提供的模式片段更新现有表 | curl -vi -X PUT \ -H "Accept: text/xml" \ -H "Content-Type: text/xml" \ -d '<?xml version="1.0" encoding="UTF-8"?><TableSchema name="users"><ColumnSchema name="cf" KEEP_DELETED_CELLS="true" /></TableSchema>' \ "http://example.com:20550/users/schema" |
/table/schema | DELETE | 删除表。 您必须使用table/schema ,而不仅仅是 table/ 。 | curl -vi -X DELETE \ -H "Accept: text/xml" \ "http://example.com:20550/users/schema" |
/table/regions | GET | 列出表区域. |
curl -vi -X GET \
-H "Accept: text/xml" \
"http://example.com:20550/users/regions"
|
Endpoint | HTTP 动作 | 说明 | 示例 |
/table/row/column:qualifier/timestamp | GET | 获取单个行的值。 值为Base-64编码。 | Latest version: curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/users/row1"Specific timestamp: curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/users/row1/cf:a/1458586888395" |
获取单个列的值。 值为Base-64编码。 | Latest version: curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/users/row1/cf:a"Specific version: curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/users/row1/cf:a/" | ||
/table/row/column:qualifier?v=number_of_versions | 获取给定单元格的指定数量的多个版本的值。 值为Base-64编码。 |
curl -vi -X GET \
-H "Accept: text/xml" \
"http://example.com:20550/users/row1/cf:a?v=2"
|
Endpoint | HTTP 动作 | 说明 | Example |
---|---|---|---|
/table/scanner/ | PUT |
获取扫描程序对象。 所有其他扫描操作都需要。 将批处理参数调整为扫描应在批处理中返回的行数。 有关向扫描器添加过滤器的示例,请参阅下一个示例。 扫描器端点URL作为HTTP响应中的位置返回。 此表中的其他示例假设扫描器端点为http://example.com:20550/users/scanner/145869072824375522207.
| curl -vi -X PUT \ -H "Accept: text/xml" \ -H "Content-Type: text/xml" \ -d '<Scanner batch="1"/>' \ "http://example.com:20550/users/scanner/" |
/table/scanner/ | PUT |
要向扫描器对象提供过滤器或以任何其他方式配置扫描器,您可以创建文本文件并将过滤器添加到文件。 例如,要仅返回键的开头为u123并且批处理大小为100的行:
<Scanner batch="100">
<filter> { "type": "PrefixFilter", "value": "u123" } </filter>
</Scanner>
curl -d参数表示带有文件传递的请求。
| curl -vi -X PUT \ -H "Accept: text/xml" \ -H "Content-Type:text/xml" \ -d @filter.txt \ "http://example.com:20550/users/scanner/" |
/table/scanner/scanner_id | GET | 从扫描仪获取下一批次。 单元格值是字节编码的。 如果扫描仪耗尽,则返回HTTP状态204。 | curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:20550/users/scanner/145869072824375522207" |
/table/scanner/scanner_id | DELETE | 删除扫描程序并释放其使用的资源。 | curl -vi -X DELETE \ -H "Accept: text/xml" \ "http://example.com:20550/users/scanner/145869072824375522207" |
Endpoint | HTTP 动作 | 说明 | 示例 |
/table/row_key/ | PUT |
向表中插入一行。 行,列的值必须分别进行Base-64编码。 要对字符串进行编码,可以使用base64命令行程序。 要解码字符串,请使用base64 -d命令。 将编码作为--data的参数。所以/users/fakerowvalue指定的是列名。 通过<CellSet>标签元素插入多个行值。 还可以保存要插入的数据到文件,并将文件作为参数的值,比如:-d @filename.txt。
| XML: curl -vi -X PUT \ -H "Accept: text/xml" \ -H "Content-Type: text/xml" \ -d '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><CellSet><Row key="cm93NQo="><Cell column="Y2Y6ZQo=">dmFsdWU1Cg==</Cell></Row></CellSet>' \ "http://example.com:20550/users/fakerow"JSON: curl -vi -X PUT \ -H "Accept: text/json" \ -H "Content-Type: text/json" \ -d '{"Row":[{"key":"cm93NQo=", "Cell": [{"column":"Y2Y6ZQo=", "$":"dmFsdWU1Cg=="}]}]}'' \ "example.com:20550/users/fakerow" |
private static UserGroupInformation getUser(HttpServletRequest req) {
String remoteUser = req.getRemoteUser();
UserGroupInformation callerUGI = null;
if (remoteUser != null) {
callerUGI = UserGroupInformation.createRemoteUser(remoteUser);
}
return callerUGI;
}
@PUT@Path("/jobs/{jobid}/tasks/{taskid}/attempts/{attemptid}/state")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response updateJobTaskAttemptState(JobTaskAttemptState targetState,
@Context HttpServletRequest request, @PathParam("jobid"))
throws IOException, InterruptedException {
init();
UserGroupInformation callerUGI = getUser(request);
// if the UGI is null, no remote user.