Merge from trunk. HDFS-6486. Add user doc for XAttrs via WebHDFS. Contributed by Yi Liu.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1605063 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8c19ff9192
commit
778608e1ad
|
@ -215,6 +215,8 @@ Release 2.5.0 - UNRELEASED
|
||||||
|
|
||||||
HDFS-6562. Refactor rename() in FSDirectory. (wheat9)
|
HDFS-6562. Refactor rename() in FSDirectory. (wheat9)
|
||||||
|
|
||||||
|
HDFS-6486. Add user doc for XAttrs via WebHDFS. (Yi Liu via umamahesh)
|
||||||
|
|
||||||
OPTIMIZATIONS
|
OPTIMIZATIONS
|
||||||
|
|
||||||
HDFS-6214. Webhdfs has poor throughput for files >2GB (daryn)
|
HDFS-6214. Webhdfs has poor throughput for files >2GB (daryn)
|
||||||
|
|
|
@ -70,6 +70,18 @@ WebHDFS REST API
|
||||||
* {{{Get Delegation Tokens}<<<GETDELEGATIONTOKENS>>>}}
|
* {{{Get Delegation Tokens}<<<GETDELEGATIONTOKENS>>>}}
|
||||||
(see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getDelegationTokens)
|
(see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getDelegationTokens)
|
||||||
|
|
||||||
|
* {{{Get an XAttr}<<<GETXATTRS>>>}}
|
||||||
|
(see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getXAttr)
|
||||||
|
|
||||||
|
* {{{Get multiple XAttrs}<<<GETXATTRS>>>}}
|
||||||
|
(see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getXAttrs)
|
||||||
|
|
||||||
|
* {{{Get all XAttrs}<<<GETXATTRS>>>}}
|
||||||
|
(see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getXAttrs)
|
||||||
|
|
||||||
|
* {{{List all XAttrs}<<<LISTXATTRS>>>}}
|
||||||
|
(see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.listXAttrs)
|
||||||
|
|
||||||
* HTTP PUT
|
* HTTP PUT
|
||||||
|
|
||||||
* {{{Create and Write to a File}<<<CREATE>>>}}
|
* {{{Create and Write to a File}<<<CREATE>>>}}
|
||||||
|
@ -108,6 +120,12 @@ WebHDFS REST API
|
||||||
* {{{Rename Snapshot}<<<RENAMESNAPSHOT>>>}}
|
* {{{Rename Snapshot}<<<RENAMESNAPSHOT>>>}}
|
||||||
(see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.renameSnapshot)
|
(see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.renameSnapshot)
|
||||||
|
|
||||||
|
* {{{Set XAttr}<<<SETXATTR>>>}}
|
||||||
|
(see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.setXAttr)
|
||||||
|
|
||||||
|
* {{{Remove XAttr}<<<REMOVEXATTR>>>}}
|
||||||
|
(see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.removeXAttr)
|
||||||
|
|
||||||
* HTTP POST
|
* HTTP POST
|
||||||
|
|
||||||
* {{{Append to a File}<<<APPEND>>>}}
|
* {{{Append to a File}<<<APPEND>>>}}
|
||||||
|
@ -909,6 +927,188 @@ Transfer-Encoding: chunked
|
||||||
{{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getAclStatus
|
{{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getAclStatus
|
||||||
|
|
||||||
|
|
||||||
|
* {Extended Attributes(XAttrs) Operations}
|
||||||
|
|
||||||
|
** {Set XAttr}
|
||||||
|
|
||||||
|
* Submit a HTTP PUT request.
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=op=SETXATTR
|
||||||
|
&xattr.name=<XATTRNAME>&xattr.value=<XATTRVALUE>
|
||||||
|
&flag=<FLAG>"
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
The client receives a response with zero content length:
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
Content-Length: 0
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
[]
|
||||||
|
|
||||||
|
See also:
|
||||||
|
{{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.setXAttr
|
||||||
|
|
||||||
|
|
||||||
|
** {Remove XAttr}
|
||||||
|
|
||||||
|
* Submit a HTTP PUT request.
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=REMOVEXATTR
|
||||||
|
&xattr.name=<XATTRNAME>"
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
The client receives a response with zero content length:
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
Content-Length: 0
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
[]
|
||||||
|
|
||||||
|
See also:
|
||||||
|
{{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.removeXAttr
|
||||||
|
|
||||||
|
|
||||||
|
** {Get an XAttr}
|
||||||
|
|
||||||
|
* Submit a HTTP GET request.
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETXATTRS
|
||||||
|
&xattr.name=<XATTRNAME>&encoding=<ENCODING>"
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
The client receives a response with a {{{XAttrs JSON Schema}<<<XAttrs>>> JSON object}}:
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
Content-Type: application/json
|
||||||
|
Transfer-Encoding: chunked
|
||||||
|
|
||||||
|
{
|
||||||
|
"XAttrs": [
|
||||||
|
{
|
||||||
|
"name":"XATTRNAME",
|
||||||
|
"value":"XATTRVALUE"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
[]
|
||||||
|
|
||||||
|
See also:
|
||||||
|
{{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getXAttr
|
||||||
|
|
||||||
|
|
||||||
|
** {Get multiple XAttrs}
|
||||||
|
|
||||||
|
* Submit a HTTP GET request.
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETXATTRS
|
||||||
|
&xattr.name=<XATTRNAME1>&xattr.name=<XATTRNAME2>
|
||||||
|
&encoding=<ENCODING>"
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
The client receives a response with a {{{XAttrs JSON Schema}<<<XAttrs>>> JSON object}}:
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
Content-Type: application/json
|
||||||
|
Transfer-Encoding: chunked
|
||||||
|
|
||||||
|
{
|
||||||
|
"XAttrs": [
|
||||||
|
{
|
||||||
|
"name":"XATTRNAME1",
|
||||||
|
"value":"XATTRVALUE1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"XATTRNAME2",
|
||||||
|
"value":"XATTRVALUE2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
[]
|
||||||
|
|
||||||
|
See also:
|
||||||
|
{{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getXAttrs
|
||||||
|
|
||||||
|
|
||||||
|
** {Get all XAttrs}
|
||||||
|
|
||||||
|
* Submit a HTTP GET request.
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETXATTRS
|
||||||
|
&encoding=<ENCODING>"
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
The client receives a response with a {{{XAttrs JSON Schema}<<<XAttrs>>> JSON object}}:
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
Content-Type: application/json
|
||||||
|
Transfer-Encoding: chunked
|
||||||
|
|
||||||
|
{
|
||||||
|
"XAttrs": [
|
||||||
|
{
|
||||||
|
"name":"XATTRNAME1",
|
||||||
|
"value":"XATTRVALUE1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"XATTRNAME2",
|
||||||
|
"value":"XATTRVALUE2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"XATTRNAME3",
|
||||||
|
"value":"XATTRVALUE3"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
[]
|
||||||
|
|
||||||
|
See also:
|
||||||
|
{{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getXAttrs
|
||||||
|
|
||||||
|
|
||||||
|
** {List all XAttrs}
|
||||||
|
|
||||||
|
* Submit a HTTP GET request.
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=LISTXATTRS"
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
The client receives a response with a {{{XAttrNames JSON Schema}<<<XAttrNames>>> JSON object}}:
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
Content-Type: application/json
|
||||||
|
Transfer-Encoding: chunked
|
||||||
|
|
||||||
|
{
|
||||||
|
"XAttrNames":"[\"XATTRNAME1\",\"XATTRNAME2\",\"XATTRNAME3\"]"
|
||||||
|
}
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
[]
|
||||||
|
|
||||||
|
See also:
|
||||||
|
{{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.listXAttrs
|
||||||
|
|
||||||
|
|
||||||
* {Snapshot Operations}
|
* {Snapshot Operations}
|
||||||
|
|
||||||
** {Create Snapshot}
|
** {Create Snapshot}
|
||||||
|
@ -1252,6 +1452,58 @@ Transfer-Encoding: chunked
|
||||||
+---------------------------------
|
+---------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
** {XAttrs JSON Schema}
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
{
|
||||||
|
"name" : "XAttrs",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"XAttrs":
|
||||||
|
{
|
||||||
|
"type" : "array",
|
||||||
|
"items":
|
||||||
|
{
|
||||||
|
"type" " "object",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"name":
|
||||||
|
{
|
||||||
|
"description": "XAttr name.",
|
||||||
|
"type" : "string",
|
||||||
|
"required" : true
|
||||||
|
},
|
||||||
|
"value":
|
||||||
|
{
|
||||||
|
"description": "XAttr value.",
|
||||||
|
"type" : "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
** {XAttrNames JSON Schema}
|
||||||
|
|
||||||
|
+---------------------------------
|
||||||
|
{
|
||||||
|
"name" : "XAttrNames",
|
||||||
|
"properties":
|
||||||
|
{
|
||||||
|
"XAttrNames":
|
||||||
|
{
|
||||||
|
"description": "XAttr names.",
|
||||||
|
"type" : "string"
|
||||||
|
"required" : true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+---------------------------------
|
||||||
|
|
||||||
|
|
||||||
** {Boolean JSON Schema}
|
** {Boolean JSON Schema}
|
||||||
|
|
||||||
+---------------------------------
|
+---------------------------------
|
||||||
|
@ -1688,6 +1940,83 @@ var tokenProperties =
|
||||||
*----------------+-------------------------------------------------------------------+
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
** {XAttr Name}
|
||||||
|
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Name | <<<xattr.name>>> |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Description | The XAttr name of a file/directory. |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Type | String |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Default Value | \<empty\> |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Valid Values | Any string prefixed with user./trusted./system./security.. |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Syntax | Any string prefixed with user./trusted./system./security.. |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
** {XAttr Value}
|
||||||
|
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Name | <<<xattr.value>>> |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Description | The XAttr value of a file/directory. |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Type | String |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Default Value | \<empty\> |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Valid Values | An encoded value. |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Syntax | Enclosed in double quotes or prefixed with 0x or 0s. |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|
||||||
|
See also:
|
||||||
|
{{{./ExtendedAttributes.html}Extended Attributes}}
|
||||||
|
|
||||||
|
|
||||||
|
** {XAttr set flag}
|
||||||
|
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Name | <<<flag>>> |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Description | The XAttr set flag. |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Type | String |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Default Value | \<empty\> |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Valid Values | CREATE,REPLACE. |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Syntax | CREATE,REPLACE. |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|
||||||
|
See also:
|
||||||
|
{{{./ExtendedAttributes.html}Extended Attributes}}
|
||||||
|
|
||||||
|
|
||||||
|
** {XAttr value encoding}
|
||||||
|
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Name | <<<encoding>>> |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Description | The XAttr value encoding. |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Type | String |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Default Value | \<empty\> |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Valid Values | text \| hex \| base64 |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|| Syntax | text \| hex \| base64 |
|
||||||
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|
||||||
|
See also:
|
||||||
|
{{{./ExtendedAttributes.html}Extended Attributes}}
|
||||||
|
|
||||||
|
|
||||||
** {Access Time}
|
** {Access Time}
|
||||||
|
|
||||||
*----------------+-------------------------------------------------------------------+
|
*----------------+-------------------------------------------------------------------+
|
||||||
|
|
Loading…
Reference in New Issue