修修改hdfs上的文件所属用户、所属组等读写执行控制权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修修改hdfs上的文件所属用户、所属组等读写执行控制权限相关的知识,希望对你有一定的参考价值。

参考技术A HDFS支持权限控制,但支持较弱。HDFS的设计是基于POSIX模型的,支持按用户、用户组、其他用户的读写执行控制权限。在linux命令行下,可以使用下面的命令修改文件的权限、文件所有者,文件所属组:

sudo addgroup Hadoop#添加一个hadoop组
sudo usermod -a -G hadoop larry#将当前用户加入到hadoop组
sudo gedit etc/sudoers#将hadoop组加入到sudoer
在root ALL=(ALL) ALL后 hadoop ALL=(ALL) ALL

修改hadoop目录的权限
sudo chown -R larry:hadoop /home/larry/hadoop<所有者:组 文件>
sudo chmod -R 755 /home/larry/hadoop

修改hdfs的权限
sudo bin/hadoop dfs -chmod -R 755 /
sudo bin/hadoop dfs -ls /

修改hdfs文件的所有者
sudo bin/hadoop fs -chown -R larry /
sudo bin/hadoop dfsadmin -safemode leave #解除hadoop的安全模式
hadoop fs -copyFromLocal <localsrc> URI#拷贝本地文件到hdfs
hadoop fs -cat file:///file3 /user/hadoop/file4#将路径指定文件的内容输出到stdout
hadoop fs -chgrp [-R] GROUP URI#改变文件的所属组
hadoop fs -chmod [-R] 755 URI#改变用户访问权限
hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]#修改文件的所有者
hadoop fs -copyToLocal URI localdst#拷贝hdfs文件到本地
hadoop fs -cp URI [URI …] <dest>#拷贝hdfs文件到其它目录
hadoop fs -du URI [URI …]#显示目录中所有文件的大小
hadoop fs -getmerge <src> <localdst> [addnl]#合并文件到本地目录

如:
root@cdh3:~# hdfs dfs -ls /
Found 8 items
drwxr-xr-x   - hbase hbase               0 2017-06-24 10:05 /hbase
drwxrwxr-x   - solr  solr                0 2016-12-01 22:43 /solr
drwxr-xr-x   - root  supergroup          0 2017-04-24 22:58 /sparklib
drwxr-xr-x   - root  supergroup          0 2017-07-19 17:44 /sparklib-2.1.0
drwxr-xr-x   - hdfs  supergroup          0 2016-12-05 09:08 /system
drwxrwxrwt   - hdfs  supergroup          0 2017-07-13 09:40 /tmp
drwxr-xrwx   - hdfs  supergroup          0 2017-06-23 10:54 /user
drwxr-xr-x   - root  supergroup          0 2017-04-13 11:12 /file

root@cdh3:~# hdfs dfs -chown Administrator /file
chown: changing ownership of '/file': Non-super user cannot change owner

root@cdh3:~# hdfs dfs -chown -R Administrator /file
chown: changing ownership of '/file': Non-super user cannot change owner

root@cdh3:~# su hdfs
hdfs@cdh3:/root$ hdfs dfs -chown -R Administrator /file
hdfs@cdh3:/root$ hdfs dfs -chgrp -R Administrator /file
hdfs@cdh3:/root$ hdfs dfs -ls /file

Found 9 items
-rw-r--r--   2 Administrator Administrator       3302 2017-04-13 11:11 /file/data-transfer.properties
-rw-r--r--   2 Administrator Administrator     313898 2017-04-13 11:00 /file/dom4j-1.6.1.jar
drwxr-xr-x   - Administrator Administrator          0 2017-04-12 10:03 /file/hangxin
-rw-r--r--   2 Administrator Administrator      24212 2017-03-17 12:06 /file/hx.jar
-rw-r--r--   2 Administrator Administrator     802721 2017-03-17 11:50 /file/mysql-connector-java-5.1.20-bin.jar
drwxr-xr-x   - Administrator Administrator          0 2017-03-22 09:46 /file/notregex
drwxr-xr-x   - Administrator Administrator          0 2017-04-25 00:01 /file/regex
-rw-r--r--   2 Administrator Administrator     106006 2017-04-13 11:12 /file/sihconfig.xml
-rw-r--r--   2 Administrator Administrator        123 2017-03-16 14:31 /file/spark-config.properties

#

HDFS 命令大全

目录

概要

HDFS 文件系统的常用操作和普通 Linux 文件系统非常相似,如读取文件,新建目录,移动文件,删除数据,列出目录等。

本文只列出常用的 HDFS 命名,要查看完整的命令行列表,可点击 这里

所有的 HDFS 命令都是调用 bin/hdfs 脚本完成的,它的基本用法如下

hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS]

hdfs 命令分成 3 种类型,分别是

  • 用户命令
  • 集群管理员命令
  • 调试命令(集群管理员使用)

在命令中会有一些 URI 参数,其中 URI 的前缀是由 core-site.xml 中的 fs.defaultFS 决定的,通过该属性就可以知道 namenode 在哪里运行进而连接到它。例如:

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop2cluster</value>
  </property>

而如果在本机操作,就可以省略 URI 前缀。

用户命令

dfs 命令

hdfs dfs [COMMAND [COMMAND_OPTIONS]]

hadoop 所支持的文件系统命令,其中 COMMAND_OPTIONS 可在 File System Shell Guide 查看。

hdfs dfs 命令前缀与 hadoop fs 效果相同。

追加文件内容

-appendToFile <localsrc> ... <dst>

实例

hdfs dfs -appendToFile hdfs-site.xml /tmp/tests/test.txt

查看文件内容

-cat URI [URI ...]

实例

hdfs dfs -cat /tmp/tests/test.txt

得到文件的校验信息

-checksum URI

实例

hdfs dfs -checksum /tmp/tests/test.txt

修改用户组

-chgrp [-R] GROUP URI [URI ...]

Change group association of files. The user must be the owner of files, or else a super-user. Additional information is in the Permissions Guide.

修改文件权限

-chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]

修改文件所属用户

 -chown [-R] [OWNER][:[GROUP]] URI [URI ]

本地拷贝到 hdfs

-copyFromLocal <localsrc> URI

hdfs 拷贝到本地

-copyToLocal [-ignorecrc] [-crc] URI <localdst>

获取目录,文件数量及大小

-count [-q] [-h] [-v] <paths>

举例

 hdfs dfs -count /tmp/tests/

得到结果

           1            1               3513 /tmp/tests

其中

  • 列 1 表示 目录数量
  • 列 2 表示 文件数量
  • 列 3 表示 文件总大小(字节)

hdfs 内拷贝

-cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
  • -f 表示如果文件已存在,会覆盖原文件
  • -p 表示会保留文件属性(时间错,owner,权限, ACL 等)

createSnapshot 创建快照

See HDFS Snapshots Guide.

deleteSnapshot 删除快照

See HDFS Snapshots Guide.

显示空闲空间

-df [-h] URI [URI ...]
  • -h 选项会以人类友好的方式来显示,如 64M 而不是多少字节

显示文件和目录大小

-du [-s] [-h] URI [URI ...]
  • The -s option will result in an aggregate summary of file lengths being displayed, rather than the individual files.
  • The -h option will format file sizes in a “human-readable” fashion (e.g 64.0m instead of 67108864)

清空回收站

-expunge

Empty the Trash. Refer to the HDFS Architecture Guide for more information on the Trash feature.

查找文件

-find <path> ... <expression> ...

显示目录或文件的访问控制列表

-getfacl [-R] <path>

显示文件或目录的扩展信息

-getfattr [-R] -n name | -d [-e en] <path>
  • -R: Recursively list the attributes for all files and directories.
  • -n name: Dump the named extended attribute value.
  • -d: Dump all extended attribute values associated with pathname.
  • -e encoding: Encode values after retrieving them. Valid encodings are “text”, “hex”, and “base64”. Values encoded as text strings are enclosed in double quotes ("), and values encoded as hexadecimal and base64 are prefixed with 0x and 0s, respectively.
  • path: The file or directory.

ls

-ls [-d] [-h] [-R] [-t] [-S] [-r] [-u] <args>
  • -d: Directories are listed as plain files.
  • -h: Format file sizes in a human-readable fashion (eg 64.0m instead of 67108864).
  • -R: Recursively list subdirectories encountered.
  • -t: Sort output by modification time (most recent first).
  • -S: Sort output by file size.
  • -r: Reverse the sort order.
  • -u: Use access time rather than modification time for display and sorting.

mkdir

-mkdir [-p] <paths>

moveFromLocal

-moveFromLocal <localsrc> <dst>

moveToLocal

-moveToLocal [-crc] <src> <dst>

mv

-mv URI [URI ...] <dest>

rm

-rm [-f] [-r |-R] [-skipTrash] URI [URI ...]
  • The -f option will not display a diagnostic message or modify the exit status to reflect an error if the file does not exist.
  • The -R option deletes the directory and any content under it recursively.
  • The -r option is equivalent to -R.
  • The -skipTrash option will bypass trash, if enabled, and delete the specified file(s) immediately. This can be useful when it is necessary to delete files from an over-quota directory.

test

-test -[defsz] URI
  • -d: f the path is a directory, return 0.
  • -e: if the path exists, return 0.
  • -f: if the path is a file, return 0.
  • -s: if the path is not empty, return 0.
  • -z: if the file is zero length, return 0.

tail

-tail [-f] URI

显示文件的最后的字节

  • The -f option will output appended data as the file grows, as in Unix.

usage

显示命令的用法

-usage command

参考文档

以上是关于修修改hdfs上的文件所属用户、所属组等读写执行控制权限的主要内容,如果未能解决你的问题,请参考以下文章

linux系统如何修改文件的所有者和所属组别

linux系统下怎么修改文件所属用户和组?

Linux读写执行权限

Linux修改文件或目录所属用户和组

Linux修改文件或目录所属用户和组

linux 怎么修改已有用户的所属组