0


Hadoop HDFS 命令行工具 hadoop fs 和 hdfs dfs 基本使用指南

hadoop fs 和 hdfs dfs 是两个命令行工具,它们的功能和用途基本相同,都是用来与Hadoop的分布式文件系统(HDFS)进行交互的。这两个命令实际上是同一个工具的不同调用方式。

命令形式:

  • hadoop fs:这是较早的命令形式,通过Hadoop的主命令hadoop来调用文件系统相关的子命令。
  • hdfs dfs:这是较新的命令形式,直接通过hdfs命令来调用文件系统相关的子命令。

兼容性和使用习惯:

  • hadoop fs:在较旧版本的Hadoop中更为常见,许多早期的文档和教程中都使用这个命令。
  • hdfs dfs:在较新版本的Hadoop中推荐使用这个命令,因为它更加直观和简洁。

功能:

  • 无论是hadoop fs还是hdfs dfs,它们支持的子命令和功能是完全相同的。例如,-ls、-put、-get、-mkdir、-rm等子命令在两个命令中都可以使用。

列出HDFS根目录下的文件和目录

hdfs dfs -ls [-C] [-R] /
  • -C:可选参数,只列出文件名
  • -R:可选参数,列出所有子目录和文件

创建目录

hdfs dfs -mkdir [-p] <HDFS路径>
  • -p:可选参数,表示递归创建目录。如果中间的某个目录不存在,也会被创建。
hdfs dfs -mkdir /hdfs/path/to/directory
hdfs dfs -mkdir -p /hdfs/path/to/directory

上传文件到HDFS

hdfs dfs -put <本地文件路径> <HDFS目标路径>

假设你想将本地的 /tmp/myfile.txt 文件上传到HDFS的 /user/username/input 目录:

hdfs dfs -put /tmp/mydir /user/username/input/

下载文件到HDFS

hdfs dfs -get <HDFS文件路径> <本地目标路径>

假设你想从HDFS的 /test/input/file1.txt 下载文件到本地的 /home/user/ 目录:

hdfs dfs -get /test/input/file1.txt /home/user/

查看HDFS文件内容

查看文件的全部内容

hdfs dfs -cat <HDFS文件路径>

假设你想查看HDFS中 /user/username/input/myfile.txt 文件的内容:

hdfs dfs -cat /user/username/input/myfile.txt

查看文件的前几行

如果你只想查看文件的前几行,可以使用 hdfs dfs -cat 命令结合 head 命令。

hdfs dfs -cat <HDFS文件路径> | head -n <行数>

假设你想查看HDFS中 /user/username/input/myfile.txt 文件的前10行内容:

hdfs dfs -cat /user/username/input/myfile.txt | head -n 10

查看文件的末尾部分内容

hdfs dfs -tail <HDFS文件路径>

假设你想查看HDFS中 /user/username/input/bigfile.txt 文件的末尾1 KB内容:

hdfs dfs -tail /user/username/input/bigfile.txt

复制文件或目录

在HDFS中复制文件或目录可以使用 hdfs dfs -cp 命令。这个命令允许你在HDFS内部复制文件或目录。

hdfs dfs -cp <HDFS文件路径> <HDFS目标路径>

假设你想将HDFS中的 /user/username/input/myfile.txt 文件复制到 /user/username/output/ 目录下:

hdfs dfs -cp /user/username/input/myfile.txt /user/username/output/

删除文件或目录

可以使用 -rm 删除文件,但不能删除目录

hdfs dfs -rm [-skipTrash] [-r] [-f] <HDFS文件路径>

-r:可选参数,删除目录及其所有内容。
-f:可选参数,可以强制删除目录及其内容,而不会提示确认。
-skipTrash:可选参数,在删除文件或目录时,跳过回收站(Trash)。


移动文件或目录

在HDFS中移动文件或目录可以使用 hdfs dfs -mv 命令。这个命令允许你在HDFS内部移动文件或目录。

hdfs dfs -mv <HDFS文件路径> <HDFS目标路径>

如果目标路径已经存在同名目录,命令会失败。


工作目录

在HDFS(Hadoop Distributed File System)中,工作目录是指用户当前所在的目录,类似于你在本地文件系统中使用的当前工作目录。工作目录的概念有助于简化路径的指定,使用户能够更方便地进行文件和目录操作。

工作目录的基本概念

默认工作目录:

  • 当用户首次登录HDFS时,默认的工作目录通常是 /user/<username>,其中 <username> 是用户的用户名。
  • 例如,如果用户名是 alice,那么默认的工作目录就是 /user/alice。

显示当前工作目录:

  • 使用 hdfs dfs -pwd 命令可以显示当前的工作目录。
hdfs dfs -pwd

切换工作目录:

  • 使用 hdfs dfs -cd <HDFS目录路径> 命令可以切换当前的工作目录。
hdfs dfs -cd /user/username/newdir

使用相对路径

假设你有一个HDFS目录结构如下:

/user/username/
├── input/
│   ├── file1.txt
│   └── file2.txt
└── output/

当你在HDFS中使用相对路径时,路径是相对于当前工作目录的。例如:
如果当前工作目录是 /user/username/input,那么 file1.txt 的相对路径就是 file1.txt。
如果当前工作目录是 /user/username,那么 input/file1.txt 的相对路径就是 input/file1.txt。

HDFS 权限模型

1. 默认权限模型

在默认权限模型中,HDFS使用类似于Unix的权限系统,每个文件和目录都有三个权限类别:

  • 用户(User)
  • 组(Group)
  • 其他(Others)

每个类别有三种权限:读(Read, r)、写(Write, w)和执行(Execute, x)。

  • 读(r):允许读取文件内容或列出目录内容。
  • 写(w):允许写入文件内容或删除/修改目录内容。
  • 执行(x):允许执行文件或进入目录。

权限可以用八进制数表示,其中:

  • 4 表示读权限(r)
  • 2 表示写权限(w)
  • 1 表示执行权限(x)

例如:
755 表示用户有读、写、执行权限,组和其他用户有读、执行权限。
644 表示用户有读、写权限,组和其他用户只有读权限。

2. 超级用户权限模型

在超级用户权限模型中,HDFS的超级用户(通常是 hdfs 用户)可以绕过权限检查,对任何文件或目录进行操作。超级用户可以更改任何文件或目录的权限和所有者。

更改文件或目录权限

hdfs dfs -chmod [-R] <mode> <path>
  • -R:可选参数,递归更改目录及其子目录和文件的权限。
  • <mode>:权限模式,可以是八进制数或符号模式。
  • <path>:要更改权限的文件或目录路径。

使用八进制数更改权限

hdfs dfs -chmod 755 /user/username/directory

755:这个权限模式表示:

  • 用户(User):7(读、写、执行)
  • 组(Group):5(读、执行)
  • 其他(Others):5(读、执行)

具体来说:

  • 7:4 + 2 + 1,表示读(r)、写(w)、执行(x)权限。
  • 5:4 + 0 + 1,表示读(r)、不写(-)、执行(x)权限。

使用符号模式更改权限

符号模式的格式为 [ugoa][+-=][rwx],其中:

  • u:用户(文件所有者)
  • g:组
  • o:其他
  • a:所有(用户、组、其他)
  • +:添加权限
  • -:移除权限
  • =:设置权限

例如:

hdfs dfs -chmod u+x /user/username/file.txt

这条命令将给文件 /user/username/file.txt 的所有者(用户)添加执行权限。

hdfs dfs -chmod go-r /user/username/file.txt

这条命令将从文件 /user/username/file.txt 的组和其他用户移除读权限。


以上就是Hadoop HDFS 命令行工具 hadoop fs 和 hdfs dfs 基本使用指南了,如果你喜欢这篇文章,不妨点赞关注支持一下。

标签: hdfs hadoop 大数据

本文转载自: https://blog.csdn.net/2302_81096429/article/details/143105247
版权归原作者 Salt327 所有, 如有侵权,请联系我们删除。

“Hadoop HDFS 命令行工具 hadoop fs 和 hdfs dfs 基本使用指南”的评论:

还没有评论