Hadoop v2 FSShell命令详解:数据交互与管理

需积分: 9 5 下载量 31 浏览量 更新于2024-10-15 收藏 106KB DOC 举报
"这篇文档详细介绍了Hadoop分布式文件系统(HDFS)下的FSShell命令,提供了Hadoop-v2版本常用操作的使用方法和示例。" 在Hadoop生态系统中,HDFS(Hadoop Distributed File System)是核心组件之一,它为大数据存储提供了可靠的、可扩展的分布式文件系统。为了方便用户与HDFS进行交互,Hadoop提供了FSShell,这是一个类似Unix Shell的命令行工具。FSShell允许用户执行各种文件操作,如创建、查看、移动和删除文件及目录。 调用FSShell命令时,需要通过`$HADOOP_HOME/bin/hadoopfs <args>`来执行,其中`$HADOOP_HOME`是Hadoop安装目录。FSShell命令通常使用URI路径作为参数,URI格式通常包括scheme(如hdfs或file)、主机名和端口,以及路径。如果不指定scheme,系统将使用配置文件中默认的文件系统。 以下是一些常见的FSShell命令及其用途: 1. mkdir:创建目录。使用`hadoopfs -mkdir <paths>`,支持类似Unix的`-p`选项,一次创建多级目录。例如: - `hadoopfs -mkdir /user/hadoop/dir1` - `hadoopfs -mkdir hdfs://host1:port1/user/hadoop/dir` 2. ls:列出目录内容。`hadoopfs -ls <path>`显示指定路径下文件和子目录的信息。与Unix的`ls`类似,但不包含隐藏文件。 - `hadoopfs -ls /user/hadoop` 3. lsr:类似于ls,但递归列出所有子目录的内容。 4. put 和 copyFromLocal:将本地文件或目录上传到HDFS。`hadoopfs -put <localsrc> ... <dst>` 或 `hadoopfs -copyFromLocal <localsrc> <dst>`。 - `hadoopfs -put /local/file /user/hadoop` 5. moveFromLocal 和 get:移动或下载文件。`hadoopfs -moveFromLocal <localsrc> <dst>` 将本地文件移动到HDFS;`hadoopfs -get <src> <localdst>` 下载HDFS上的文件。 - `hadoopfs -moveFromLocal /local/file /user/hadoop` - `hadoopfs -get /user/hadoop/file /local` 6. copyToLocal 和 copyToLocal:这两个命令在Hadoop-v2中是同义词,用于将HDFS文件复制到本地。 - `hadoopfs -copyToLocal /user/hadoop/file /local` 7. rm 和 rmr:删除文件或目录。`hadoopfs -rm <paths>` 删除单个文件,`hadoopfs -rmr <paths>` 删除目录及其内容。 - `hadoopfs -rmr /user/hadoop/dir` 8. test:测试文件属性。例如,`-test -e <path>` 检查文件是否存在,`-test -z <path>` 检查文件是否为空。 9. du 和 dus:计算文件或目录的大小。`-du` 显示每个文件的大小,`-dus` 显示每个目录的总大小。 - `hadoopfs -du /user/hadoop` 10. mv 和 cp:移动或复制文件和目录。`hadoopfs -mv <src> <dst>` 移动,`hadoopfs -cp <src> <dst>` 复制。 - `hadoopfs -mv /user/hadoop/file1 /user/hadoop/file2` 11. cat 和 tail:查看文件内容。`hadoopfs -cat <path>` 打印文件内容,`hadoopfs -tail <path>` 类似于Unix的`tail`,显示文件末尾。 - `hadoopfs -cat /user/hadoop/file` 12. touchz:创建一个空文件。 - `hadoopfs -touchz /user/hadoop/newfile` 13. setrep:设置文件或目录的副本数。 - `hadoopfs -setrep -w 3 /user/hadoop/file` 14. stat:获取文件或目录的详细信息,如权限、大小、修改时间等。 - `hadoopfs -stat /user/hadoop/file` 15. getmerge:合并多个文本文件为一个本地文件。 - `hadoopfs -getmerge /user/hadoop/files/* /local/mergedfile.txt` 16. text:以文本格式显示二进制文件内容。 - `hadoopfs -text /user/hadoop/binaryfile` 17. chmod、chown 和 chgrp:更改文件或目录的权限、所有者或组。 - `hadoopfs -chmod 755 /user/hadoop/file` - `hadoopfs -chown -R user:hadoopgroup /user/hadoop` 在执行这些命令时,错误信息会被输出到标准错误(stderr),而其他输出则到标准输出(stdout)。每个命令的返回值代表操作结果,例如,成功返回0,失败则返回非零值,如255表示目录已存在或其他错误。 了解并熟练掌握这些HDFS FSShell命令对于进行Hadoop集群的数据管理和分析至关重要。通过这些基本操作,用户能够有效地管理HDFS上的文件和目录,实现数据的上传、下载、备份、清理以及权限管理等任务。