FS与通用文件系统有关,该文件系统可以指向任何文件系统,例如本地,HDFS等。但是dfs非常特定于HDFS。因此,当我们使用FS时,它可以执行从/到本地或hadoop分布式文件系统到destination的操作。但是指定DFS操作与HDFS有关。
以下是hadoop文档的摘录,该文档将这两个描述为不同的shell。
FS Shell
FileSystem(FS)Shell由bin / hadoop fs调用。所有FS Shell命令都将路径URI作为参数。URI格式为scheme:// autority / path。对于HDFS,方案为hdfs,对于本地文件系统,方案为file。方案和权限是可选的。如果未指定,则使用配置中指定的默认方案。可以将HDFS文件或目录(例如/ parent / child)指定为hdfs:// namenodehost / parent / child,也可以简单地指定为/ parent / child(假设您的配置设置为指向hdfs:// namenodehost)。FS Shell中的大多数命令的行为类似于相应的Unix命令。
DFShell
HDFS Shell由bin / hadoop dfs调用。所有HDFS Shell命令都将路径URI作为参数。URI格式为scheme:// autority / path。对于HDFS,方案为hdfs,对于本地文件系统,方案为file。方案和权限是可选的。如果未指定,则使用配置中指定的默认方案。可以将HDFS文件或目录(例如/ parent / child)指定为hdfs:// namenode:namenodeport / parent / child,也可以简单地指定为/ parent / child(假设您的配置设置为指向namenode:namenodeport)。HDFS Shell中的大多数命令的行为类似于相应的Unix命令。
因此,从以上可以得出结论,这完全取决于方案配置。当将这两个命令与绝对URI一起使用时,即scheme:// a / b,其行为应相同。分别是文件的默认配置方案值和fs和dfs的hdfs方案默认值,这是行为差异的原因。
hdfs dfs
显示hdfs文件。