FS se relaciona con un sistema de archivos genérico que puede apuntar a cualquier sistema de archivos como local, HDFS, etc. Pero dfs es muy específico para HDFS. Entonces, cuando usamos FS , puede realizar operaciones con desde / hacia local o sistema de archivos distribuido hadoop al destino. Pero especificar la operación DFS se relaciona con HDFS.
A continuación se muestran los extractos de la documentación de hadoop que describe estos dos como shells diferentes.
Shell FS
El shell FileSystem (FS) es invocado por bin / hadoop fs. Todos los comandos del shell FS toman URI de ruta como argumentos. El formato de URI es el esquema: // autoridad / ruta. Para HDFS, el esquema es hdfs, y para el sistema de archivos local, el esquema es file. El esquema y la autoridad son opcionales. Si no se especifica, se utiliza el esquema predeterminado especificado en la configuración. Un archivo o directorio HDFS como / parent / child se puede especificar como hdfs: // namenodehost / parent / child o simplemente como / parent / child (dado que su configuración está configurada para apuntar a hdfs: // namenodehost). La mayoría de los comandos del shell FS se comportan como los correspondientes comandos de Unix.
DFShell
El shell HDFS es invocado por bin / hadoop dfs. Todos los comandos de shell de HDFS toman URI de ruta como argumentos. El formato de URI es el esquema: // autoridad / ruta. Para HDFS, el esquema es hdfs, y para el sistema de archivos local, el esquema es file. El esquema y la autoridad son opcionales. Si no se especifica, se utiliza el esquema predeterminado especificado en la configuración. Un archivo o directorio HDFS como / parent / child se puede especificar como hdfs: // namenode: namenodeport / parent / child o simplemente como / parent / child (dado que su configuración está configurada para apuntar a namenode: namenodeport). La mayoría de los comandos del shell HDFS se comportan como los correspondientes comandos de Unix.
Entonces, de lo anterior se puede concluir que todo depende de la configuración del esquema. Cuando se utilizan estos dos comandos con URI absoluto, es decir, esquema: // a / b, el comportamiento será idéntico. Solo es el valor de esquema configurado predeterminado para el archivo y hdfs para fs y dfs, respectivamente, lo que es la causa de la diferencia de comportamiento.
hdfs dfs
muestran los archivos hdfs.