2
votes

Quelle est la différence entre Hadoop fs et les commandes Unix classiques?

Je suis nouveau sur Hadoop et HDFS, j'essaie de voir pourquoi les commandes Hadoop fs sont nécessaires par rapport à l'utilisation des équivalents de commande Unix. Ils semblent tous les deux fonctionner, ma première pensée a été la commande Hadoop interfacée directement avec le namenode HDFS et l'a propagée à tous les nœuds. Cependant, cela semble être le cas lorsque j'utilise uniquement la commande shell Unix. J'ai afflué sur Internet et je n'ai pas trouvé d'explication facile. L'aide est grandement appréciée. Ou un lien vers une explication de la différence.


2 commentaires

Dans quel environnement êtes-vous dans lequel vous pouvez utiliser les commandes UNIX sur HDFS? Fusible HDFS NFS ou HDFS? La commande UNIX peut fonctionner sur les fichiers HDFS sous-jacents, mais les noms sont modifiés pour relier le namenode et pour la réplication.


HDFS sur NFS qui est emballé par MAPR. Je manipule donc ces fichiers sur un volume monté sur un edgenode (ne faisant pas partie du cluster) mais j'ai le logiciel mapr dessus. Lorsque j'exécute les commandes unix ou la commande hadoop -fs, elles semblent produire les mêmes résultats. Je me demande si l'environnement est si petit (6) nœuds qu'une réplication automatisée se produit ou quelque chose comme ça je n'ai pas besoin de la ligne de commande hadoop. [root @ maprprod01 bin] # ./hadoop version Hadoop 2.7.0-mapr-1710


3 Réponses :


0
votes

Le shell du système de fichiers (FS) comprend diverses commandes de type shell qui interagissent directement avec le système de fichiers distribué Hadoop (HDFS) ainsi qu'avec d'autres systèmes de fichiers pris en charge par Hadoop, tels que Local FS, HFTP FS, S3 FS et autres. Le shell FS est appelé par:

bin/hadoop fs <args>

Toutes les commandes du shell FS prennent les URI de chemin comme arguments. Le format URI est schéma: // autorité / chemin. Pour HDFS, le schéma est hdfs et pour le FS local, le schéma est un fichier. 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 / enfant

ou simplement comme

/ parent / enfant

(étant donné que votre configuration est définie pour pointer vers hdfs: // namenodehost).

La plupart des commandes du shell FS se comportent comme les commandes Unix correspondantes .

Il se peut que vous ne trouviez pas certaines commandes shell régulières comme -head, mais -tail et -cat sont disponibles. Des différences subtiles dans les mêmes commandes peuvent être trouvé pour des commandes individuelles ici .


2 commentaires

Merci pour votre réponse, j'ai vu cela dans la documentation. Je suppose que ma question est de savoir quelle est la différence si j'utilise les commandes Hadoop -fs par rapport aux commandes Unix. L'utilisation de CHMOD standard modifiera-t-elle tous les nœuds sur le HDFS? Cela semble fonctionner de cette façon. Je vois les mêmes résultats lorsque j'utilise à la fois les commandes Hadoop -fs et les commandes shell standard. Désolé si ce n'est pas clair.


Je ne suis pas sûr de comprendre ce que vous demandez. Les commandes Hadoop fs ont probablement été conçues en gardant à l'esprit les commandes unix. Cependant, tous ne se comportent pas de la même manière (en particulier pour les indicateurs supplémentaires, comme "hadoop fs -ls" se comporte comme la commande "ls -al"). Comme mentionné précédemment, les commandes hadoop fs sont un sous-ensemble et il se peut que vous ne trouviez pas toutes les commandes unix.



1
votes

Grâce aux commentateurs TK421, cela m'a fait penser que c'était sur NFS et que ce n'était pas non plus du HDFS direct, c'est une implémentation MAPR donc ça diffère, j'ai trouvé une documentation de mapr qui explique.

Vous pouvez également définir des autorisations de lecture, d'écriture et d'exécution sur un fichier ou répertoire pour les utilisateurs et les groupes avec des commandes UNIX standard, lorsque le volume a été monté via NFS, ou en utilisant hadoop fs standard commandes.

https://mapr.com/docs/52/MapROverview/c_volumes.html


0 commentaires

1
votes

Si vous utilisez HDFS via NFS, vous pouvez vous attendre à ce que la plupart des commandes simples fonctionnent correctement (telles que ls , cd , mkdir , mv , rm , chmod , chgrp , chown ). Le seul besoin de la commande hadoop fs ou hdfs dfs est si vous utilisez des ACL étendues ou si vous voulez faire d'autres choses spécifiques à Hadoop comme:

  • modifier le facteur de réplication hadoop fs -setrep
  • supprimer les fichiers sous /user/USERNAME/.Trash hdfs dfs -expunge

0 commentaires