zoukankan      html  css  js  c++  java
  • hadoop入门手册5:Hadoop【2.7.1】初级入门之命令:文件系统shell2

    问题导读

    1.改变hdfs文件的权限,需要修改哪个配置文件?
    2.获取一个文件的或则目录的权限,哪个命令可以实现?
    3.哪个命令可以实现设置访问控制列表(ACL)的文件和目录?







    接上篇:
    Hadoop【2.7.1】初级入门之命令:文件系统shell1
    http://www.aboutyun.com/thread-15824-1-1.html




    getfacl
    用法: hadoop fs -getfacl [-R] <path>
    显示访问控制列表(ACL)的文件和目录. 如果一个目录有默认的ACL,  getfacl 也显示默认的ACL.
    选项:

    • -R: 递归目录和列出所有文件的ACLs.
    • path: 文件或目录列表。

    例子:

    • hadoop fs -getfacl /file
    • hadoop fs -getfacl -R /dir

    返回代码:
    返回 0成功返回 非0 错误
    <ignore_js_op> 


    getfattr
    用法: hadoop fs -getfattr [-R] -n name | -d [-e en] <path>
    显示文件和目录扩展属性名字和值[如果有的话]
    选项:

    • -R: 递归显示文件和目录属性.
    • -n name: Dump the named extended attribute value.
    • -d: Dump all extended attribute values associated with pathname.
    • -e encoding: 检索后的值进行编码。 有效的编码是 “text”, “hex”, and “base64”. 值编码作为文本字符串是用双引号括起来的(“),

    值编码作为16进制和64进制,前缀分别为 0x 和 0s

    • path: 文件或则目录

    例子:

    • hadoop fs -getfattr -d /file
    • hadoop fs -getfattr -R -n user.myAttr /dir

    返回代码:
    返回 0成功返回 非0 错误

    getmerge
    用法: hadoop fs -getmerge <src> <localdst> [addnl]
    源目录和目标文件作为输入和连接文件合并到本地目标文件。addnl选项可以设置在文件末尾添加一个换行符。


    help
    用法: hadoop fs -help
    返回使用输出。

    ls
    用法: hadoop fs -ls [-d] [-h] [-R] [-t] [-S] [-r] [-u] <args>
    选项:

    • -d: 目录被列为纯文件。
    • -h: 文件格式变为易读 (例如  67108864显示 64.0m).
    • -R: 递归子目录列表中。
    • -t: 按修改时间排序输出(最近一次)。
    • -S: 按文件大小排序输出。
    • -r: 倒序排序
    • -u: 对使用时间显示和排序而不是修改时间


    文件返回下面信息:

    [Bash shell] 纯文本查看 复制代码
    1
    2
    permissions     number_of_replicas   userid      groupid  filesize        modification_date     modification_time  filename
    权限                   副本数                    用户名      所属组   文件大小       修改日期                 修改时间              文件名




    目录返回下面信息


          权限        用户    所属组      修改日期          修改时间               目录名



    目录内的文件默认按文件名排序
    例子:

    • hadoop fs -ls /user/hadoop/file1


    退出代码:
    返回0成功,返回-1错误


    lsr
    用法: hadoop fs -lsr <args>
    ls递归
    注意: 这个命令被启用的,替换为hadoop fs -ls -R

    mkdir
    用法: hadoop fs -mkdir [-p] <paths>
    以URI的路径作为参数并创建目录。
    选项:

    • -p 选项与Linux -p功能一样,会创建父目录

    例子:

    • hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
    • hadoop fs -mkdir hdfs://nn1.example.com/user/hadoop/dir hdfs://nn2.example.com/user/hadoop/dir

    退出代码:
    返回0成功,-1错误

    moveFromLocal
    用法: hadoop fs -moveFromLocal <localsrc> <dst>
    类似put命令,但是它是本地源文件复制后被删除


    moveToLocal
    用法: hadoop fs -moveToLocal [-crc] <src> <dst>
    显示 “Not implemented yet” 消息

    mv
    用法: hadoop fs -mv URI [URI ...] <dest>移动文件,这个命令允许移动多个文件到某个目录

    例子:

    • hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
    • hadoop fs -mv hdfs://nn.example.com/file1 hdfs://nn.example.com/file2 hdfs://nn.example.com/file3 hdfs://nn.example.com/dir1

    退出代码:
    返回0成功,-1错误

    put
    用法: hadoop fs -put <localsrc> ... <dst>
    复制单个或则多个源文件到目标系统文件。从stdin读取输入并写入到目标文件系统。

    • hadoop fs -put localfile /user/hadoop/hadoopfile
    • hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
    • hadoop fs -put localfile hdfs://nn.example.com/hadoop/hadoopfile
    • hadoop fs -put - hdfs://nn.example.com/hadoop/hadoopfile 从stdin读取输入。

    退出代码:
    返回0成功,-1错误

    renameSnapshot
    See HDFS Snapshots Guide.

    rm
    用法: hadoop fs -rm [-f] [-r |-R] [-skipTrash] URI [URI ...]
    删除指定的参数文件。
    选项:

    • -f 选项 如果该文件不存在,则该选项将不显示诊断信息或修改退出状态以反映错误。
    • -R选项递归删除目录下任何内容
    • -r与-R效果一样
    • -skipTrash选项绕过垃圾回收器,如果启用,将会立即删除指定文件。这是非常有用对于超过配额的目录



    例子:

    • hadoop fs -rm hdfs://nn.example.com/file /user/hadoop/emptydir

    退出代码:
    返回0成功,-1错误

    rmdir
    用法: hadoop fs -rmdir [--ignore-fail-on-non-empty] URI [URI ...]
    删除目录
    选项:

    • --ignore-fail-on-non-empty: 当使用通配符,一个目录还包含文件,不会失败.

    例子:

    • hadoop fs -rmdir /user/hadoop/emptydir


    rmr
    用法: hadoop fs -rmr [-skipTrash] URI [URI ...]
    递归删除
    说明:这个命令被弃用了,而是使用hadoop fs -rm -r

    setfacl
    用法: hadoop fs -setfacl [-R] [-b |-k -m |-x <acl_spec> <path>] |[--set <acl_spec> <path>]
    设置访问控制列表(ACL)的文件和目录。
    选项:

    • -b:移除所有除了基本的ACL条目。用户、组和其他的条目被保留为与权限位的兼容性。
    • -k:删除默认的ACL。
    • -R: 递归应用于所有文件和目录的操作。
    • -m:修改ACL。新的项目添加到ACL,并保留现有的条目。
    • -x: 删除指定的ACL条目。其他保留ACL条目。
    • --set:完全替换ACL,丢弃所有现有的条目。acl_spec必须包括用户,组,和其他有权限位的兼容性。
    • acl_spec:逗号分隔的ACL条目列表。
    • path:修改文件或目录。



    例子:

    • hadoop fs -setfacl -m user:hadoop:rw- /file
    • hadoop fs -setfacl -x user:hadoop /file
    • hadoop fs -setfacl -b /file
    • hadoop fs -setfacl -k /dir
    • hadoop fs -setfacl --set user::rw-,user:hadoop:rw-,group::r--,other::r-- /file
    • hadoop fs -setfacl -R -m user:hadoop:r-x /dir
    • hadoop fs -setfacl -m default:user:hadoop:r-x /dir

    退出代码:
    返回0成功,非0错误
    以上需要开启acl:
    开启acls,配置hdfs-site.xml

    [Bash shell] 纯文本查看 复制代码
    1
    2
    3
    4
    5
    vi etc/hadoop/hdfs-site.xml
    <property>
        <name>dfs.namenode.acls.enabled</name>
        <value>true</value>
    </property>



    setfattr
    用法: hadoop fs -setfattr -n name [-v value] | -x name <path>
    设置一个文件或目录的扩展属性名和值。
    选项:
    -b: 移除所有的条目除了基本的ACL条目。用户、组和其他的条目被保留为与权限位的兼容性。
    -n name:扩展属性名。
    -v value:扩展属性值。有三种不同编码值,如果该参数是用双引号括起来的,则该值是引号内的字符串。如果参数是前缀0x或0X,然后作为一个十六进制数。如果参数从0或0,然后作为一个base64编码。
    -x name: 移除所有属性值
    path: 文件或则路径
    例子:

    • hadoop fs -setfattr -n user.myAttr -v myValue /file
    • hadoop fs -setfattr -n user.noValue /file
    • hadoop fs -setfattr -x user.myAttr /file

    退出代码:
    返回0成功,非0错误



    setrep
    用法: hadoop fs -setrep [-R] [-w] <numReplicas> <path>
    更改文件的备份. 如果是一个目录,会递归改变目录下文件的备份。
    选项:
    -w标识,要求备份完成,这可能需要很长时间。
    -R标识,是为了兼容,没有实际效果

    例子:

    • hadoop fs -setrep -w 3 /user/hadoop/dir1

    退出代码:
    返回0成功,非0错误



    stat
    用法: hadoop fs -stat [format] <path> ...按指定格式打印文件/目录的打印统计。
    格式接受文件块 (%b), 类型 (%F), groutp拥有者 (%g), 名字 (%n), block size (%o), replication (%r), 用户拥有者(%u),  修改日期 (%y, %Y). %y 显示 UTC 日期如 “yyyy-MM-dd HH:mm:ss” 和 %Y 1970年1月1日以来显示毫秒UTC. 如果没有指定, 默认使用%y.
    例子:

    • hadoop fs -stat "%F %u:%g %b %y %n" /file

    退出代码:
    返回0成功
    返回-1错误


    tail
    用法: hadoop fs -tail [-f] URI
    显示文件内容,最后千字节的文件发送到stdout,
    选项:
    - f选项将输出附加数据随着文件的增长,如同Unix
    例子:

    • hadoop fs -tail pathname

    退出代码:
    返回0成功
    返回-1错误

    test
    用法: hadoop fs -test -[defsz] URI
    选项:
    -d:如果路径是一个目录,返回0
    -e:如果路径已经存在,返回0
    -f: 如果路径是一个文件,返回0
    -s:如果路径不是空,返回0
    -z:如果文件长度为0,返回0



    例子:

    • hadoop fs -test -e filename


    text
    用法: hadoop fs -text <src>
    一个源文件,以文本格式输出文件。允许的格式是zip和textrecordinputstream。


    touchz
    用法: hadoop fs -touchz URI [URI ...]
    创建一个零长度的文件。
    例子:

    • hadoop fs -touchz pathname

    退出代码:返回0成功,-1error


    truncate
    用法: hadoop fs -truncate [-w] <length> <paths>
    截断指定文件模式指定的长度匹配的所有文件。

    选项:
    -w 选项需要等待命令完成块恢复。如果没有-w选项,在恢复的过程中可能是未闭合的

    例子:

    • hadoop fs -truncate 55 /user/hadoop/file1 /user/hadoop/file2
    • hadoop fs -truncate -w 127 hdfs://nn1.example.com/user/hadoop/file1


    usage
    用法: hadoop fs -usage command
    返回单个命令的帮助。





    相关内容 
    hadoop入门手册1:hadoop【2.7.1】【多节点】集群配置【必知配置知识1】



    hadoop入门手册2:hadoop【2.7.1】【多节点】集群配置【必知配置知识2】




    hadoop入门手册3:Hadoop【2.7.1】初级入门之命令指南



    hadoop入门手册4:Hadoop【2.7.1】初级入门之命令:文件系统shell1



    hadoop入门手册5:Hadoop【2.7.1】初级入门之命令:文件系统shell2



    hadoop2.X使用手册1:通过web端口查看主节点、slave1节点及集群运行状态
    http://www.aboutyun.com/thread-7712-1-1.html

  • 相关阅读:
    和远哥一起了解Hadoop的MapReduce是如何运行的
    远哥跟你说 Spring的 classpath 通配符加载配置文件
    远哥Amoeba源码分析之:核心类说明
    远哥推荐:面向网络的数据库 Neo4j
    Hadoop 1.0.3 在CentOS 6.2上安装过程 [个人安装通过的全程记录]
    OpenShift 添加 URL Rewrite 重写支持
    Access中空值处理
    解决EOS启动“不能连接到Server”的问题
    [原创]用递归写的一个object 转换成JSON的函数
    JSON反序列的问题原因查找
  • 原文地址:https://www.cnblogs.com/snowbook/p/5681395.html
Copyright © 2011-2022 走看看