HDFS中的扩展属性(Extended Attributes in HDFS)

HDFS中的扩展属性(Extended Attributes in HDFS)Apache Hadoop 2.9.0。Xattrs names必须以命名空间为前缀,例如,在user命名空间中,一个xattr的name是my

大家好,欢迎来到IT知识分享网。

HDFS中的扩展属性(Extended Attributes in HDFS)

Apache Hadoop 2.9.0

请查看原文:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/ExtendedAttributes.html

(如果转发,请标明出处)

概述

扩展属性(缩写为xattrs )是一种文件系统功能,允许用户应用程序将其他元数据与文件或目录相关联。与系统级节点(inode)元数据(如文件权限或修改时间)不同,扩展属性不会由系统解释,而是由应用程序用来存储有关节点(inode)的其他信息,例如,可以使用扩展属性来指定纯文本文档的字符编码。

HDFS扩展属性

HDFS中的扩展属性是根据Linux的扩展属性建模的(请查看Linux 手册中的attr(5))。一个扩展属性就是一个name-value pair,name是string类型,value是二进制值。Xattrs names必须以命名空间为前缀,例如,在user命名空间中,一个xattr的name是myXattr ,那么name最终会是user.myXattr。多个xattrs 可以关联到一个inode上。

命名空间和权限

在HDFS中,有5个有效的命名空间:user, trusted, system, security, 和 raw。每个命名空间都有不同的使用限制。

① user命名空间通常被客户端应用程序使用。对user命名空间中扩展属性的访问由相应的文件权限控制。

② trusted 命名空间只有HDFS超级用户可用。

③ system命名是HDFS内部保留使用的,此命名空间无法通过userspace方法访问,并保留用于实现HDFS内部功能。

④ security 命名空间也是HDFS内部保留使用。此命名空间通常无法通过userspace方法访问。security 的一个特殊用途是security.hdfs.unreadable.by.superuser 扩展属性,此xattr只能在文件上设置,它将阻止超级用户读取文件的内容,但是超级用户依然能够读取或者修改文件的元数据,例如所有者,权限等等。假定有正常的文件系统权限,任何用户都可以设置和访问xattr,xattr也是一次写入,设置后无法删除,同时xattr不允许设置value。

⑤ raw 命名空间保留给有时需要公开的内部系统属性。与system 命名空间属性类似,它们对用户不可见,除非在HDFS /.reserved/raw目录层次结构上的文件或者目录上调用getXAttr/getXAttrs。这些属性只能被超级用户访问。distcp 是一个使用raw命名空间扩展属性的例子。加密区元数据存储在raw.*的扩展属性中,只要管理员在源和目标中使用/.reserved/raw目录名,加密区域中的加密文件是透明复制的。

扩展属性交互

Hadoop shell通过 hadoop fs -getfattr 和hadoop fs -setfattr来支持和扩展属性交互。这些命令是根据Linux getfatter ( 1 )和setfatter ( 1 )命令设置样式的。

getfattr

hadoop fs -getfattr [-R] -n name | -d [-e en] <path>

显示一个文件或者目录的扩展属性names和values。

-R

递归列出所有文件和目录的属性

-n name

显示name的扩展属性值

-d

显示所有目录名字相关的扩展属性值

-e <encoding>

检索值后的编码。有效的编码是“text”, “hex”, and “base64”。Values被编码到一个用双引号括起来 (“)的文本字符串,编码为十六进制和base64的值分别以0x和0s作为前缀。

<path>

文件或目录

setfattr

hadoop fs -setfattr -n name [-v value] | -x name <path>

为一个文件或者目录设置扩展属性的name和value。

-n name

扩展属性名

-v value

扩展属性值,目前有三种不同的编码方式. 如果参数用双引号括起来,则该值是引号内的字符串。如果参数的前缀为0X或0X,则该参数将被视为十六进制数。如果引数以0或0开头,则视为base64编码。

-x name

删除扩展属性

<path>

文件或目录

配置选项

HDFS支持开箱即用的扩展属性,无需额外配置。管理员可能需要关心限制每个信息节点的xattr数量和xattr大小的选项,因为xattr会增加inode在磁盘上和内存中的空间消耗。

① dfs.namenode.xattrs.enabled

是否在NameNode上启用对扩展属性的支持。默认,扩展属性是启用的。

② dfs.namenode.fs-limits.max-xattrs-per-inode

每个inode上的最大扩展属性个数。默认,是32。

③ dfs.namenode.fs-limits.max-xattr-size

扩展属性的name和value组合的最大大小(以字节为单位),默认是16384 字节。

——————- 全文完 —————————-

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/47992.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信