hadoop fs -ls aboutit à "aucun fichier ou répertoire"
J'ai installé et configuré Hadoop 2.5.2 pour un 10 nœuds de cluster. 1 agit comme masternode et les autres nœuds comme slavenodes.
J'ai un problème dans l'exécution de hadoop fs commandes. hadoop fs -commande ls fonctionne bien avec HDFS URI. Il donne un message "ls: `.': Aucun fichier ou répertoire" lorsqu'il est utilisé sans HDFS URI
ubuntu@101-master:~$ hadoop fs -ls
15/01/30 17:03:49 WARN util.NativeCodeLoader: Unable to load native-hadoop
ibrary for your platform... using builtin-java classes where applicable
ls: `.': No such file or directory
ubuntu@101-master:~$
Attendu que l'exécution de cette commande avec HDFS URI
ubuntu@101-master:~$ hadoop fs -ls hdfs://101-master:50000/
15/01/30 17:14:31 WARN util.NativeCodeLoader: Unable to load native-hadoop
library for your platform... using builtin-java classes where applicable
Found 3 items
drwxr-xr-x - ubuntu supergroup 0 2015-01-28 12:07 hdfs://101-master:50000/hvision-data
-rw-r--r-- 2 ubuntu supergroup 15512587 2015-01-28 11:50 hdfs://101-master:50000/testimage.seq
drwxr-xr-x - ubuntu supergroup 0 2015-01-30 17:03 hdfs://101-master:50000/wrodcount-in
ubuntu@101-master:~$
Je suis d'exception dans MapReduce programme en raison de ce comportement. jarlib est en se référant à l'emplacement de fichier HDFS, alors que, je veux jarlib à consulter le jar fichiers stockés sur le système de fichiers local sur Hadoop nœuds.
source d'informationauteur Tariq
Vous devez vous connecter pour publier un commentaire.
Le comportement que vous voyez est prévu, laissez-moi vous expliquer ce qui se passe lorsque vous travaillez avec des
hadoop fs
commandes.La commande de la syntaxe est la suivante:
hadoop fs -ls [path]
Par défaut, lorsque vous ne spécifiez pas de
[path]
pour la commande ci-dessus, hadoop élargit le chemin d'accès à/home/[username]
dans hdfs; où[username]
sera remplacé par le nom d'utilisateur linux qui est de l'exécution de la commande.Ainsi, lorsque vous exécutez cette commande:
la raison pour laquelle vous voyez l'erreur est
ls: '.': No such file or directory
parce que hadoop est à la recherche de ce chemin/home/ubuntu
il semble que ce chemin n'existe pas dans hdfs.La raison pour laquelle cette commande:
est de travailler parce que, vous l'avez explicitement spécifié
[path]
et il est la racine de la sf. Vous pouvez également faire la même chose en utilisant ceci:qui obtient automatiquement évalués à la racine de hdfs.
Espoir, cela efface le comportement que vous voyez lors de l'exécution de
hadoop fs -ls
commande.Par conséquent, si vous souhaitez spécifier le système de fichiers local chemin d'accès
file:///
schéma d'url.cela a à voir avec le manque répertoire home de l'utilisateur. Une fois que j'ai créé le répertoire d'accueil en vertu de la sf pour l'utilisateur connecté, il a travaillé comme un charme..
cette méthode résout mon problème.
Il ya un couple de choses ici à l'œuvre, sur la base "jarlib est en se référant à la HDFS emplacement du fichier", ça sonne comme vous avez en effet une HDFS chemin d'accès défini comme votre
fs.default.name
qui est en effet la configuration typique. Ainsi, lorsque vous tapezhadoop fs -ls
c'est en effet en essayant de regarder à l'intérieur de HDFS, sauf que c'est en regardant dans votre répertoire de travail courantqui doit être quelque chose commehdfs://101-master:50000/user/ubuntu
. Le message d'erreur est malheureusement un peu à confusion car elle ne vous dit pas que.
a été interprétée pour être que le chemin d'accès complet. Si voushadoop fs -mkdir /user/ubuntu
puishadoop fs -ls
devrait commencer à travailler.Ce problème n'est pas lié à la votre "jarlib" problème; chaque fois que vous voulez consulter les fichiers explicitement stockées dans le système de fichiers local, mais où le chemin passe par Hadoop est
Path
résolution, il vous suffit de l'ajouterfile:///
à force de Hadoop pour désigner le système de fichiers local. Par exemple:Essayer de passer votre chemins de fichiers jar en tant que fille
file:///path/to/your/jarfile
et cela devrait fonctionner.Le répertoire de l'utilisateur dans Hadoop est (HDFS)
Si vous obtenez ce message d'erreur c'est peut être parce que vous n'avez pas encore créé votre répertoire utilisateur dans HDFS.
Utilisation
Pour voir quel est ton système d'exploitation de l'utilisateur, de l'utilisation:
hadoop fs -ls
il devrait commencer à travailler...AVERTIR util.NativeCodeLoader: Impossible de charger le natif hadoop pour votre bibliothèque
plate-forme de... à l'aide de builtin-classes java le cas échéant
Cette erreur sera supprimé à l'aide de cette commande .bashrc fichier: