FS は、ローカル、HDFS などの任意のファイル システムを指すことができる汎用ファイル システムに関連していますが、dfs は HDFS に非常に固有です。したがって、FS を使用すると、ローカルまたは Hadoop 分散ファイル システムとの間で操作を実行できますが、DFS 操作を指定すると、HDFS に関連します。
以下は、これら 2 つを異なるシェルとして説明している Hadoop ドキュメントからの抜粋です。
FS シェル:
FileSystem (FS) シェルは、によって呼び出されbin/hadoop fs
ます。すべての FS シェル コマンドは、パス URI を引数として受け取ります。URI 形式はscheme://autority/path
. HDFS のスキームは hdfs で、ローカル ファイルシステムのスキームは file です。スキームと権限はオプションです。指定しない場合、構成で指定されたデフォルトのスキームが使用されます。のような HDFS ファイルまたはディレクトリは、として、または単に として/parent/child
指定できます(構成が を指すように設定されている場合)。FS シェルのほとんどのコマンドは、対応する Unix コマンドのように動作します。hdfs://namenodehost/parent/child
/parent/child
hdfs://namenodehost
DFシェル:
HDFS シェルは によって呼び出されbin/hadoop dfs
ます。すべての HDFS シェル コマンドは、パス URI を引数として受け取ります。URI 形式はscheme://autority/path
. HDFS のスキームは hdfs で、ローカル ファイルシステムのスキームは file です。スキームと権限はオプションです。指定しない場合、構成で指定されたデフォルトのスキームが使用されます。のような HDFS ファイルまたはディレクトリは、として、または単に として/parent/child
指定できます(構成が を指すように設定されている場合)。HDFS シェルのほとんどのコマンドは、対応する Unix コマンドのように動作します。hdfs://namenode:namenodeport/parent/child
/parent/child
namenode:namenodeport
上記から、すべてが設定スキームに依存していると結論付けることができます。この 2 つのコマンドを絶対 URI で使用するとscheme://a/b
、動作は同じになります。fs と dfs の file と hdfs のデフォルトで構成されたスキーム値のみが、動作の違いの原因です。