Qu'est-ce que le HDFS Emplacement sur Hadoop?
Je suis en train de lancer le WordCount exemple dans Hadoop après avoir suivi quelques tutoriels en ligne. Cependant, ce n'est pas clair pour moi, comme d'où vient le fichier copié à partir de notre système de fichiers HDFS lorsque nous exécutons la commande suivante.
hadoop fs -copyFromLocal /host/tut/python-tutorial.pdf /usr/local/myhadoop-tmp/
Quand j'ai exécuté la commande suivante, je ne vois pas mon python-tutoriel.pdf énumérés ici sur HDFS.
hadoop fs -ls
Ceci est source de confusion pour moi. Je l'ai déjà spécifié "myhadoop-tmp" dans core-site.xml. Je pensais que ce répertoire va devenir HDFS répertoire pour le stockage de tous les fichiers d'entrée.
core-site.xml
=============
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/myhadoop-tmp</value>
<description>A base for other temporary directories.</description>
</property>
Si ce n'est pas le cas, où est le HDFS situé sur ma machine ? Quelle configuration détermine le HDFS répertoire et d'où vient le fichier d'entrée aller quand on le copie locale du système de fichier HDFS ?
hadoop fs -ls /usr/local/myhadoop-tmp/
?Cool. Ce qui a fonctionné pour moi. Je peux voir mon fichier maintenant. Merci pour les conseils.
Eh bien, ma réponse répond à votre question, alors vous devez les accepter.
Je suis en train de cliquer sur "Accepter" réponse de lien mais une petite fenêtre apparaît et il est dit que "vous ne pouvez pas accepter une réponse en 2 minutes". Je ne sais pas ce que cela signifie.
Juste essayer de nouveau dans quelques minutes.
OriginalL'auteur user2325154 | 2013-10-17
Vous devez vous connecter pour publier un commentaire.
Cela est défini dans la
dfs.datanode.data.dir
des biens, dont la valeur par défautfile://${hadoop.tmp.dir}/dfs/data
(voir les détails ici).Cependant, dans votre cas, le problème est que vous n'êtes pas en utilisant le chemin d'accès complet dans HDFS. Au lieu de cela, faire:
Note que, vous semblez aussi être source de confusion le chemin d'accès dans HDFS pour le chemin dans votre système de fichiers local. Dans HDFS, votre fichier est en
/usr/local/myhadoop-tmp/
. Dans le système local (et compte tenu de votre paramètre de configuration), il est sous/usr/local/myhadoop-tmp/dfs/data/
; là, il y a une structure de répertoire et de la convention de nommage définies par HDFS, qui est indépendante, quelle que soit la voie dans HDFS vous décidez d'utiliser. Aussi, il n'aura pas le même nom, car il est divisé en blocs et chaque bloc est attribué un IDENTIFIANT unique, le nom d'un bloc est quelque chose commeblk_1073741826
.Pour conclure: le chemin d'accès local utilisé par le datanode n'est PAS le même que les chemins d'accès que vous utilisez dans HDFS. Vous pouvez aller dans votre répertoire local de la recherche de fichiers, mais vous ne devriez pas faire cela, car vous risquez de gâcher le HDFS la gestion des métadonnées. Suffit d'utiliser hadoop outils de ligne de commande pour copier/déplacer/lecture de fichiers HDFS, l'aide d'une voie logique (dans HDFS) que vous souhaitez utiliser. Ces chemins dans HDFS n'ont pas besoin d'être lié à l'chemins que vous avez utilisé pour votre local datanode de stockage (il n'y a pas de raison d'ou l'avantage de le faire).
Donc, est-ce à dire que je ne vois pas le fichier sur mon système de fichiers local, si je vais dans /usr/local/myhadoop-tmp/dfs/données/ répertoire et exécuter un ls-l de la commande?
J'ai ajouté une explication plus détaillée.
Je vais avoir le même problème. Vous n'avez donc savoir si on peut/ne peut pas voir hdfs sur notre machine locale?
Je comprends votre point que dans hdfs cas, sa seule voie logique interne et hdfs le maintenir à sa manière.
OriginalL'auteur cabad