【HDFS篇02】HDFS命令行操作1
在Hadoop分布式文件系统(HDFS)中,进行操作通常通过命令行界面(CLI)进行,这包括管理文件、目录以及与本地文件系统的交互。本文将详细介绍HDFS的Shell操作,主要涵盖基本语法、常用命令以及其用法。 HDFS的Shell操作有两种基本语法,即`hadoop fs`和`hdfs dfs`,两者功能相同,但`hadoop fs`更推荐使用。这些命令可以用来执行各种操作,如创建、查看、移动、复制、删除文件和目录。 1. **启动Hadoop集群**: 使用`start-dfs.sh`启动HDFS,`start-yarn.sh`启动YARN(Yet Another Resource Negotiator),这两个脚本是Hadoop集群运行的基础。 2. **帮助命令**: `help`命令用于输出具体命令的参数信息,例如`hadoop fs -help rm`会显示关于删除文件的详细选项。 3. **显示目录信息**: `ls`命令用于查看目录内容,`-R`选项表示递归查看子目录。例如,`hadoop fs -ls /`和`hadoop fs -ls -R /`分别列出根目录和所有子目录下的内容。 4. **创建目录**: `mkdir`命令用于在HDFS上创建目录,`-p`选项可一次创建多级目录。例如,`hadoop fs -mkdir -p /input/word_data`创建了`/input/word_data`目录。 5. **从本地到HDFS的文件操作**: - `moveFromLocal`用于剪切并粘贴本地文件到HDFS,例如`hadoop fs -moveFromLocal ./new_data.txt /input/`。 - `copyFromLocal`用于从本地复制文件到HDFS,例如`hadoop fs -copyFromLocal ./xiaofei.txt /input/`。 - `put`等同于`copyFromLocal`,将本地文件上传到HDFS,例如`hadoop fs -put ./together.txt /input/`。 6. **文件内容操作**: - `appendToFile`用于向已存在的文件追加内容,例如`hadoop fs -appendToFile ./xiaofei.txt /input/new_data.txt`。 - `cat`用于显示文件内容,例如`hadoop fs -cat /input/new_data.txt`。 7. **文件权限和所有权**: - `chgrp`, `chmod`, `chown`分别用于改变文件的组、权限和所有者,它们的使用与Linux系统中的用法一致。例如,`hadoop fs -chmod 777 /input/`给予`/input/`目录所有权限。 8. **文件和目录的移动和复制**: - `cp`用于在HDFS内部复制文件,例如`hadoop fs -cp /input/xiaofei.txt /output/xiaofei.txt`。 - `mv`用于在HDFS内部移动文件,例如`hadoop fs -mv /input/new_data.txt /output/new_data.txt`。 - `get`等同于`copyToLocal`,将HDFS文件下载到本地,例如`hadoop fs -get /input/xiaofei.txt ./`。 - `getmerge`用于合并下载多个文件,例如`hadoop fs -getmerge /input/* ./together.txt`。 9. **查看文件尾部**: `tail`命令用于查看文件的末尾,例如`hadoop fs -tail /input/xiaofei.txt`。 10. **删除文件和目录**: - `rm`用于删除文件或文件夹,例如`hadoop fs -rm /output/new_data.txt`。 - `rmdir`用于删除空目录,例如`hadoop fs -rmdir /test`。 11. **统计文件大小**: `du`命令用于查看文件或目录的大小信息,`-h`选项以人类可读的格式显示,例如`hadoop fs -du -h /input/xiaofei.txt`。 12. **设置副本数量**: `setrep`命令用于设置HDFS文件的副本数量,例如`hadoop fs -setrep 10 /input/xiaofei.txt`。请注意,实际副本数量受限于DataNode的数量。 以上就是HDFS Shell操作的基本命令及其用法,熟练掌握这些命令能有效管理和操作HDFS上的数据。在实际工作中,这些命令常被组合使用以实现更复杂的任务,如数据迁移、备份和清理等。