文件/目录操作
-
-ls: 列出目录中的文件和子目录信息。
-
用法: dfs -ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e] [ ...]
-
常用选项:
- 无选项: 列出路径下的文件和目录,类似ls。
- -R: 递归列出所有子目录的内容,类似ls -R。
- -h: 以人类可读的格式显示文件大小(例如 1K, 2M, 3G)。
- -d: 将目录作为普通文件列出,而不是显示其内容。
-
示例: dfs -ls -h /user/data
-
-
-mkdir: 创建一个或多个目录。
-
用法: dfs -mkdir [-p] ...
-
选项:
- -p: 沿路径创建父目录(如果不存在的话),类似mkdir -p。
-
示例: dfs -mkdir -p /user/project/input
-
-
-mv: 移动或重命名文件或目录。
-
用法: dfs -mv ...
-
说明: 此命令可以在HDFS内部移动文件/目录。如果源和目标都在同一目录下,则效果为重命名。
-
示例:
- 移动文件: dfs -mv /user/data/file.txt /user/backup/
- 重命名文件: dfs -mv /user/data/old_name.txt /user/data/new_name.txt
-
-
-cp: 复制文件或目录。
-
用法: hadoop fs -cp [-f] [-p | -p[topax]] [-d] [-t ] [-q ] ...
-
常用选项:
- -f: 如果目标文件已存在,则强制覆盖。
- -p: 保留文件属性(时间戳、所有权、权限)。
-
示例: hadoop fs -cp /user/data/file1.txt /user/data/file2.txt
-
-
-rm: 删除一个或多个文件或目录。
-
用法: hadoop fs -rm [-f] [-r|-R] [-skipTrash] [-safely] ...
-
常用选项:
- -r 或 -R: 递归删除目录及其内容。删除目录时必须使用此选项。
- -skipTrash: 永久删除文件,不将其移入回收站。
- -f: 强制删除,不进行提示。
-
示例: hadoop fs -rm -r /user/temp_data
-
-
-rmdir: 删除一个空目录。
-
用法: hadoop fs -rmdir [--ignore-fail-on-non-empty]
... -
说明: 只能删除空目录。如果要删除非空目录,请使用rm -r。
-
选项:
- --ignore-fail-on-non-empty: 如果目录非空,不打印错误信息。
-
示例: hadoop fs -rmdir /user/empty_dir
-
数据上传与下载
-
-copyFromLocal (或 -put): 将本地文件系统中的文件或目录复制到HDFS。
-
用法: hadoop fs -copyFromLocal ... 或 hadoop fs -put ...
-
常用选项:
- -f: 覆盖目标路径下的同名文件。
-
示例: hadoop fs -put ./local_file.txt /user/hadoop/
-
-
-copyToLocal (或 -get): 将HDFS中的文件或目录复制到本地文件系统。
-
用法: hadoop fs -copyToLocal ... 或 hadoop fs -get ...
-
常用选项:
- -f: 覆盖本地路径下的同名文件。
-
示例: hadoop fs -get /user/hadoop/hdfs_file.txt ./
-
-
-moveFromLocal: 将本地文件移动到HDFS,移动后本地文件会被删除。
- 用法: hadoop fs -moveFromLocal ...
- 示例: hadoop fs -moveFromLocal ./report.csv /user/archive/
-
-moveToLocal: 将HDFS文件移动到本地文件系统,移动后HDFS上的文件会被删除。
- 用法: hadoop fs -moveToLocal
文件内容查看与合并
-
-cat: 将HDFS中一个或多个文件的内容输出到标准输出(通常是终端)。
- 用法: hadoop fs -cat [-ignoreCrc] ...
- 示例: hadoop fs -cat /user/data/part-00000
-
-text: 以文本格式显示文件内容,支持压缩文件(如gzip, bzip2)。
- 用法: hadoop fs -text [-ignoreCrc] ...
- 示例: hadoop fs -text /user/data/logs.gz
-
-head: 查看文件的开头部分,默认是1KB。
- 用法: hadoop fs -head
- 示例: hadoop fs -head /user/large_file.txt
-
-tail: 查看文件的末尾部分。
-
用法: hadoop fs -tail [-f] [-s ]
-
选项:
- -f: 持续显示文件中追加的新内容,类似tail -f。
-
示例: hadoop fs -tail -f /user/logs/current.log
-
-
-getmerge: 将HDFS中一个目录下的多个文件合并成一个本地文件。
-
用法: hadoop fs -getmerge [-nl] [-skip-empty-file]
-
选项:
- -nl: 在每个文件合并的末尾添加一个换行符。
-
示例: hadoop fs -getmerge /user/output/part-* ./merged_output.txt
-
-
-appendToFile: 将一个或多个本地文件的内容追加到一个HDFS文件中。
- 用法: hadoop fs -appendToFile ...
- 示例: hadoop fs -appendToFile ./log1.txt ./log2.txt /user/hadoop/master_log.txt
-
-concat: 将多个HDFS文件合并成一个目标HDFS文件。
- 用法: hadoop fs -concat ...
- 说明: 源文件将在合并后被删除,且所有文件必须在同一个目录下。
- 示例: hadoop fs -concat /user/output/final_result /user/output/part-*
权限与属性管理
-
-chmod: 更改文件或目录的权限。
-
用法: hadoop fs -chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...
-
示例:
- hadoop fs -chmod 755 /user/data/script.sh
- hadoop fs -chmod -R u+w /user/project (递归为用户添加写权限)
-
-
-chown: 更改文件或目录的所有者和组。
- 用法: hadoop fs -chown [-R] [OWNER][:[GROUP]] PATH...
- 示例: hadoop fs -chown -R hadoop:supergroup /user/data
-
-chgrp: 更改文件或目录的所属组。
- 用法: hadoop fs -chgrp [-R] GROUP PATH...
- 示例: hadoop fs -chgrp -R supergroup /user/analytics
-
-getfacl / -setfacl: 获取/设置访问控制列表(ACLs),用于更细粒度的权限控制。
-
-getfattr / -setfattr: 获取/设置文件的扩展属性。
磁盘空间与统计
-
-df: 显示文件系统的总空间、已用空间和可用空间。
-
用法: hadoop fs -df [-h] [ ...]
-
选项:
- -h: 以人类可读的格式显示。
-
示例: hadoop fs -df -h /
-
-
-du: 显示文件或目录所占用的空间大小。
-
用法: hadoop fs -du [-s] [-h] [-v] [-x] ...
-
常用选项:
- -s: 显示总计大小,而不是每个文件的单独大小。
- -h: 以人类可读的格式显示。
-
示例: hadoop fs -du -s -h /user/project
-
-
-count: 统计路径下的目录数、文件数和总字节数。
-
用法: hadoop fs -count [-q] [-h] [-v] [-t []] [-u] [-x] [-e] [-s] ...
-
常用选项:
- -q: 显示配额信息。
-
示例: hadoop fs -count /user/data
-
-
-stat: 显示文件或目录的状态信息。
- 用法: hadoop fs -stat [format] ...
- 示例: hadoop fs -stat "%b %n" /user/data/file.txt (以指定格式显示文件大小和名称)