一、概述
HDFS(Hadoop Distributed File System)是Hadoop生态系统中的一个焦点组件,它是一个高度容错性的分布式文件系统,设计用于在廉价硬件上存储大规模数据集。HDFS的架构采用主从(Master/Slave)结构模型,包罗一个NameNode和多个DataNode。NameNode负责管理文件系统的命名空间和客户端对文件的访问操纵,而DataNode则管理存储的数据。
HDFS还支持与Hadoop生态系统中的其他工具(如MapReduce、Hive、Pig等)举行共同使用,实现更为复杂的数据处理任务。HDFS在大数据处理场景中被广泛应用,例如数据挖掘、呆板学习和科学盘算等。
二、HDFS的常用下令(ls、mkdir、put、get、rm、chown、chmod)
- ls
- 功能:列出HDFS目录中的文件和目录。
- 语法:hdfs dfs -ls [-h] [-R] [-t] [-S] [-r] [-u] <path> ...
- 示例:hdfs dfs -ls /user/hadoop
- 参数说明:
- -h:以人类可读的格式显示文件巨细(例如,以KB、MB、GB为单位)。
- -R:递归地列出目录及其子目录。
- 其他参数提供了更多的排序和显示选项。
- mkdir
- 功能:在HDFS中创建一个目录。
- 语法:hdfs dfs -mkdir [-p] <path> ...
- 示例:hdfs dfs -mkdir /user/hadoop/newdir
- 参数说明:
- put
- 功能:将本地文件或目录复制到HDFS中。
- 语法:hdfs dfs -put [-f] [-p] [-l] [-d] [-t <local_time>] <localsrc> ... <dst>
- 示例:hdfs dfs -put localfile.txt /user/hadoop/
- 参数说明:
- -f:覆盖目标位置已存在的文件或目录。
- -p:保留访问和修改时间。
- -l:允许在本地系统中数据块较小的文件复制为HDFS中较大的数据块。
- 其他参数提供了更多的选项。
- get
- 功能:将HDFS中的文件或目录复制到本地文件系统中。
- 语法:hdfs dfs -get [-f] [-p] [-l] <src> ... <localdst>
- 示例:hdfs dfs -get /user/hadoop/remotefile.txt localdir/
- 参数说明与put下令中的类似。
- rm
- 功能:删除HDFS中的文件或目录。
- 语法:hdfs dfs -rm [-r] [-skipTrash] [-f] <path> ...
- 示例:hdfs dfs -rm /user/hadoop/unneededfile.txt
- 参数说明:
- -r 或 -R:递归地删除目录及其内容。
- -skipTrash:绕过HDFS的接纳站并直接删除文件或目录。
- -f:逼迫删除,不提示确认。
- chown
- 功能:更改HDFS文件或目录的所有者。
- 语法:hdfs dfs -chown [-R] <owner>:<group> <path> ...
- 示例:hdfs dfs -chown hadoop:hadoopgroup /user/hadoop/somefile.txt
- 参数说明:
- chmod
- 功能:更改HDFS文件或目录的权限。
- 语法:hdfs dfs -chmod [-R] <mode> <path> ...
- 示例:hdfs dfs -chmod 755 /user/hadoop/somedir
- 参数说明:
- -R:递归地更改目录及其内容的权限。
- <mode>:是一个八进制数,用于指定文件或目录的权限(例如,755表现所有者有读、写和执行权限,而组用户和其他用户只有读和执行权限)。
请注意,上述下令中的hdfs dfs前缀是HDFS shell下令的标准前缀。但在某些Hadoop发行版中,你也可以只使用hdfs作为前缀,大概完全不使用前缀(如果HDFS shell下令已经设置为系统的默认shell下令)
三、常用下令实操
3.1 准备工作
1)启动Hadoop集群(方便后续的测试)
- [root@hadoop01 hadoop-3.1.3]$ sbin/start-dfs.sh
- [root@hadoop02 hadoop-3.1.3]$ sbin/start-yarn.sh
复制代码 2)-help:输出这个下令参数
- [root@hadoop01 hadoop-3.1.3]$ hadoop fs -help rm
复制代码 3)创建/jin文件夹
大概
创建hdfs目录
- hadoop fs -mkdir /user/hadoop/newdir
复制代码 递归创建HDFS目录(包罗所有不存在的父目录)
- hadoop fs -mkdir /user/hadoop/newdir
复制代码 3.2 上传
1)-moveFromLocal:从本地剪切粘贴到HDFS
- [root@hadoop01 hadoop-3.1.3]$ vim xiaoshou.txt
复制代码 大概
- hdfs -dfs -moveFromLocal ./xiaoshou.txt /jin
复制代码 3.3复制
copyFromLocal:从本地文件系统中拷贝文件到HDFS路径去用 hadoop fs -put 下令将文件复制到HDFS。
- hadoop fs -put /home/user/data.txt /user/hadoop/data.txt
复制代码 3.4 -rm:删除文件或文件夹
删除单个文件
- hadoop fs -rm /hdfs/path/to/file.txt
复制代码 如果你想要删除一个文件夹及其所有内容,你需要使用-r或-R选项来递归地删除文件夹和其中的所有文件
- hadoop fs -rm -r /hdfs/path/to/directory/
复制代码- hadoop fs -rm -R /hdfs/path/to/directory/
复制代码 3.5 -cat:显示文件内容
- hadoop fs -cat /hdfs/path/to/large_file.txt > local_file.txt
复制代码 3.6 -mkdir:创建路径
- hadoop fs -mkdir /hdfs/path/to/directory
复制代码 3.7 -cp:从HDFS的一个路径拷贝到HDFS的另一个路径
- hadoop fs -mv /user/hadoop/hdfsdir/remotefile.txt /user/hadoop/newdir/
- hadoop fs -mv -r /user/hadoop/hdfsdir/ /user/hadoop/newdir/
复制代码 这些下令是HDFS下令行工具的一些根本示例,用于管理HDFS上的文件和目录。请确保在运行这些下令之前,你已经设置了Hadoop情况,并且hadoop下令在你的PATH中可用。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |