hadoop fs、hadoop dfs、hdfs fs、hdfs dfs区别

(1) fs是一个通用的文件系统可以指向任何的文件系统如local,HDFS等,而dfs是分布式文件系统,是针对hdfs的(经博主验证,hdfs dfs也能用于操作local)。
(2) 使用hadoop dfs时内部会被转为hdfs dfs命令

hadoop fs、hadoop dfs、hdfs fs、hdfs dfs区别_第1张图片
fs:
调用文件系统(FS)Shell命令应使用 hadoop fs 的形式。 所有的的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。一个HDFS文件或目录比如/parent/child可以表示成hdfs://namenode:namenodeport/parent/child,或者更简单的/parent/child(假设你配置文件中的默认值是namenode:namenodeport)。大多数FS Shell命令的行为和对应的Unix Shell命令类似。出错信息会输出到stderr,其他信息输出到stdout。

dfs:
If HDFS is being used,hdfs dfs is a synonym.
即,如果对于的是hdfs文件系统,hdfs dfs和hadoop fs一样。

默认scheme查看:

which hadoop #查看hadoop安装路径
cd 到安装路径
cd ./etc/hadoop
vi core-site.xml 

对应hdfs系统通常是:
<property>
<name>fs.defaultFS</name>
<value>hdfs://minecluster</value>
</property>
或者对应本地:
<property>
<name>fs.defaultFS</name>
<value>file://opt</value>
</property>

hadoop fs 和hdfs dfs都受上述默认变量控制

经验证,hdfs dfs也能控制本地文件系统。验证版本:Hadoop 3.1.1

建议:还是用hadoop fs,官方文档里用的基本是这个。

参考:
https://www.cnblogs.com/hulianweb/p/13062971.html

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FileSystemShell.html

https://stackoverflow.com/questions/30749364/where-is-the-default-scheme-configuration-in-hadoop

你可能感兴趣的:(Spark,hadoop,hdfs,深度优先)