Solución:
Los siguientes son los tres comandos que parecen iguales pero tienen pequeñas diferencias
- hadoop fs {argumentos}
- hadoop dfs {argumentos}
- hdfs dfs {args}
hadoop fs <args>
FS se relaciona con un sistema de archivos genérico que puede apuntar a cualquier sistema de archivos como local, HDFS, etc. Por lo tanto, se puede usar cuando se trata de diferentes sistemas de archivos como Local FS, (S) FTP, S3 y otros.
hadoop dfs <args>
dfs es muy específico de HDFS. funcionaría para la operación se relaciona con HDFS. Esto ha quedado obsoleto y deberíamos usar hdfs dfs en lugar de.
hdfs dfs <args>
Igual que 2nd, es decir, funcionaría para todas las operaciones relacionadas con HDFS y es el comando recomendado en lugar de hadoop dfs
a continuación se muestra la lista categorizada como hdfs
comandos.
namenode|secondarynamenode|datanode|dfs|dfsadmin|fsck|balancer|fetchdt|oiv|dfsgroups
Así que incluso si usas hadoop dfs , buscará ubicar hdfs y delegará ese comando a hdfs dfs
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html
El shell del sistema de archivos (FS) incluye varios comandos similares a los de un shell que interactúan directamente con el sistema de archivos distribuido de Hadoop (HDFS), así como con otros sistemas de archivos que admite Hadoop, como Local FS, WebHDFS, S3 FS y otros.
bin / hadoop fs
<args>
Todos los comandos del shell FS toman URI de ruta como argumentos. El formato de URI es esquema: // autoridad / ruta. Para HDFS, el esquema es hdfs y para Local FS, el esquema es archivo. 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. Las diferencias se describen con cada uno de los comandos. La información de error se envía a stderr y la salida se envía a stdout.
Si se utiliza HDFS,
hdfs dfs
es un sinónimo.
fs se refiere a cualquier sistema de archivos, podría ser local o HDFS, pero dfs se refiere solo al sistema de archivos HDFS. Entonces, si necesita acceder / transferir datos entre diferentes sistemas de archivos, fs es el camino a seguir.