FS se rapporte à un système de fichiers générique qui peut pointer vers n'importe quel système de fichiers comme local, HDFS, etc. Mais dfs est très spécifique à HDFS. Ainsi, lorsque nous utilisons FS, il peut effectuer des opérations avec le système de fichiers distribué from / to local ou hadoop vers la destination. Mais la spécification du fonctionnement DFS concerne HDFS.
Vous trouverez ci-dessous des extraits de la documentation hadoop qui décrit ces deux shells différents.
Shell FS
Le shell FileSystem (FS) est appelé par bin / hadoop fs. Toutes les commandes du shell FS prennent les URI de chemin comme arguments. Le format de l'URI est schéma: // autorité / chemin. Pour HDFS, le schéma est hdfs et pour le système de fichiers local, le schéma est file. Le schéma et l'autorité sont facultatifs. S'il n'est pas spécifié, le schéma par défaut spécifié dans la configuration est utilisé. Un fichier ou un répertoire HDFS tel que / parent / child peut être spécifié comme hdfs: // namenodehost / parent / child ou simplement comme / parent / child (étant donné que votre configuration est définie pour pointer vers hdfs: // namenodehost). La plupart des commandes du shell FS se comportent comme des commandes Unix correspondantes.
DFShell
Le shell HDFS est appelé par bin / hadoop dfs. Toutes les commandes shell HDFS prennent les URI de chemin comme arguments. Le format de l'URI est schéma: // autorité / chemin. Pour HDFS, le schéma est hdfs et pour le système de fichiers local, le schéma est file. Le schéma et l'autorité sont facultatifs. S'il n'est pas spécifié, le schéma par défaut spécifié dans la configuration est utilisé. Un fichier ou un répertoire HDFS tel que / parent / child peut être spécifié comme hdfs: // namenode: namenodeport / parent / child ou simplement comme / parent / child (étant donné que votre configuration est définie pour pointer vers namenode: namenodeport). La plupart des commandes du shell HDFS se comportent comme des commandes Unix correspondantes.
Donc, à partir de ce qui précède, on peut conclure que tout dépend du schéma configuré. Lors de l'utilisation de ces deux commandes avec un URI absolu, c'est-à-dire schéma: // a / b, le comportement doit être identique. Seule sa valeur de schéma configurée par défaut pour file et hdfs pour fs et dfs respectivement, ce qui est la cause de la différence de comportement.
hdfs dfs
spectacle les fichiers hdfs aussi.