HDFS扩展属性

简介:

原文:http://hadoop.apache.org/docs/r2.6.4/hadoop-project-dist/hadoop-hdfs/ExtendedAttributes.html

概述

扩展属性(简写为xattrs)是一个文件系统的特性,它允许用户程序用一个文件或目录关联额外的元数据。不同于系统级的inode元数据比如权限或修改时间,扩展属性不会被系统解释,它是用来被应用程序解读并存储inode额外信息的。扩展属性用来存储比如一个文本文档的编码信息。

HDFS扩展属性

HDFS的扩展属性是依照Linux的扩展属性来建模的(参见Linux帮助手册attr(5)和相关文档)。一个扩展属性就是一个名值对,包含一个字符串名字和一个二进制值。扩展属性名必须依照一个特定的命名空间前缀命名。比如,一个叫做myXattr的属性名必须声明为user.myXattr,这说明在user的命名空间下。多个扩展属性可以关联同一个inode。

命名空间和权限

HDFS包含5个合理的命名空间:user, trusted, system, security, 和 raw。每个命名空间拥有不同的访问限制。

user命名空间是被客户端应用程序使用的命名空间。在user命名空间访问扩展属性被对应的文件权限来控制访问。

trusted命名空间只对HDFS的超级用户有效。

system命名空间是保留给HDFS内部使用的。该命名空间不能通过用户级别的方法访问到,只被用来实现HDFS内部的feature。

security命名空间也是保留给HDFS内部使用的。该命名空间不能通过用户级别的方法访问。security的一个特定的使用时扩展属性security.hdfs.unreadable.by.superuser。这个属性只能设置到文件上,它可以禁止超级用户来读取文件内容。超级用户可以读取和修改文件的元数据,比如owner,权限等。这个扩展属性可以被任何拥有普松文件系统权限的用户设置和访问。该属性是write-once的,一旦被设置将不能被删除。该属性不允许设置值。

raw命名空间是内部系统保留的命名空间,但是有时会暴露给外部。除非一个在/.reserved/raw目录下的文件被getXAttr/getXAttrs调用,否则raw命名空间像其他系统级命名空间一样不被外部用户访问。这些属性只能被超级用户访问。一个raw命名空间扩展属性使用的案例就是distcp。加密区域的元数据存储在raw.*的扩展属性里,只要管理员使用/.reserved/raw路径作为源或者目标,在加密域中的加密文件会被透明的复制。

与扩展属性交互

Hadoop shell支持扩展属性的交互,通过hadoop fs -getfattr名令和hadoop fs -setfattr命令。这些明星类似Linux的 getfattr(1) 和 setfattr(1)。

getfattr

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

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

参数 描述
-R 递归显示所有目录和文件的扩展属性。
-n name Dump指定名字的扩展属性值。
-d Dump指定路径的所有扩展属性值。
-e <encoding> 查询属性值后对其encode。合法的编码包括:"text", "hex", 和 "base64"。被编码的字符串会被双引号包围,被编码为16进制和base64的会有个前缀0x和0s。
<path> 文件或者目录。

setfattr

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

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

参数 描述
-n name 扩展属性名
-v value 扩展属性值。有三种不同的编码方法。如果参数被包围在双引号内,则值是普通字符串类型。如果以0x或者0X开头,那么值是16进制数字。如果以0s或者0S开头,则值是base64编码的串。
-x name 删除扩展属性。
<path> 文件或者目录。

配置选项

HDFS支持在配置之外使用扩展属性。因为扩展属性会增加inode的磁盘和内存空间的消耗,管理员可能会限制每个inode的扩展属性数量和大小。

  • dfs.namenode.xattrs.enabled
    在NameNode上是否支持扩展尚需经。默认情况扩展属性是enable的。
  • dfs.namenode.fs-limits.max-xattrs-per-inode
    每个inode支持的最大扩展属性数。默认值是32。
  • dfs.namenode.fs-limits.max-xattr-size
    一个扩展属性的名和值的组合最大字节数。默认情况,上限是16384字节。
目录
相关文章
|
机器学习/深度学习 存储 分布式计算
HDFS 高可用和高扩展机制分析|青训营笔记
文章主要讲解:1.HDFS 元数据服务的高可用;2.HDFS 数据存储高可用;3.HDFS 元数据服务的高扩展性;4.HDFS 数据存储的高扩展性
266 0
HDFS 高可用和高扩展机制分析|青训营笔记
|
存储 机器学习/深度学习 消息中间件
HDFS高可用与高扩展机制
HDFS高可用与高扩展机制
363 0
HDFS高可用与高扩展机制
|
2月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
177 6
|
2月前
|
SQL 分布式计算 监控
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
66 3
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
49 4
|
2月前
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
78 5
|
2月前
|
资源调度 数据可视化 大数据
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
36 4
|
2月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
170 5
|
2月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
100 3
|
2月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
124 4