Hadoop 之 HDFS下令

一给  金牌会员 | 2024-7-14 07:53:00 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 649|帖子 649|积分 1947



一、概述

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
    • 参数说明:

      • -p:如果父目录不存在,则创建它们。


  • 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
    • 参数说明:

      • -R:递归地更改目录及其内容的所有者和组。


  • 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集群(方便后续的测试)
  1. [root@hadoop01 hadoop-3.1.3]$ sbin/start-dfs.sh
  2. [root@hadoop02 hadoop-3.1.3]$ sbin/start-yarn.sh
复制代码
2)-help:输出这个下令参数
  1. [root@hadoop01 hadoop-3.1.3]$ hadoop fs -help rm
复制代码
3)创建/jin文件夹
  1. hadoop fs -mkdir /jin
复制代码
大概
  1. hdfs dfs -mkdir /jin
复制代码
创建hdfs目录

  1. hadoop fs -mkdir /user/hadoop/newdir
复制代码
递归创建HDFS目录(包罗所有不存在的父目录)

  1. hadoop fs -mkdir /user/hadoop/newdir
复制代码
3.2 上传

1)-moveFromLocal:从本地剪切粘贴到HDFS
  1. [root@hadoop01 hadoop-3.1.3]$ vim xiaoshou.txt
复制代码
大概
  1. hdfs -dfs -moveFromLocal ./xiaoshou.txt /jin
复制代码
3.3复制

copyFromLocal:从本地文件系统中拷贝文件到HDFS路径去用 hadoop fs -put 下令将文件复制到HDFS。
  1. hadoop fs -put /home/user/data.txt /user/hadoop/data.txt
复制代码
3.4 -rm:删除文件或文件夹

删除单个文件
  1. hadoop fs -rm /hdfs/path/to/file.txt
复制代码
如果你想要删除一个文件夹及其所有内容,你需要使用-r或-R选项来递归地删除文件夹和其中的所有文件
  1. hadoop fs -rm -r /hdfs/path/to/directory/
复制代码
  1. hadoop fs -rm -R /hdfs/path/to/directory/
复制代码
3.5 -cat:显示文件内容

  1. hadoop fs -cat /hdfs/path/to/large_file.txt > local_file.txt
复制代码
3.6 -mkdir:创建路径

  1. hadoop fs -mkdir /hdfs/path/to/directory
复制代码
3.7 -cp:从HDFS的一个路径拷贝到HDFS的另一个路径

  1. hadoop fs -mv /user/hadoop/hdfsdir/remotefile.txt /user/hadoop/newdir/  
  2. hadoop fs -mv -r /user/hadoop/hdfsdir/ /user/hadoop/newdir/
复制代码
这些下令是HDFS下令行工具的一些根本示例,用于管理HDFS上的文件和目录。请确保在运行这些下令之前,你已经设置了Hadoop情况,并且hadoop下令在你的PATH中可用。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

一给

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表