Si vous exécutez :
hdfs dfs -copyFromLocal foo.txt bar.txt
alors le fichier local foo.txt sera copié dans votre propre répertoire hdfs /user/popeye/bar.txt
(où popeye
est votre nom d'utilisateur.) En conséquence, ce qui suit obtient le même :
hdfs dfs -copyFromLocal foo.txt /user/popeye/bar.txt
Avant de copier un fichier dans hdfs, assurez-vous simplement de créer d'abord le répertoire parent. Vous n'êtes pas obligé de placer des fichiers dans ce répertoire "home", mais (1) mieux vaut ne pas encombrer "/" avec toutes sortes de fichiers, et (2) suivre cette convention aidera à éviter les conflits avec d'autres utilisateurs.
Votre approche est erronée ou votre compréhension est peut-être erronée
dfs.datanode.data.dir
, est l'endroit où vous souhaitez stocker vos blocs de données
Si vous tapez hdfs dfs -ls /
vous obtiendrez la liste des répertoires dans hdfs. Ensuite, vous pouvez transférer des fichiers de local vers hdfs en utilisant -copyFromLocal
ou -put
vers un répertoire particulier ou en utilisant -mkdir
vous pouvez créer un nouveau répertoire
Reportez-vous au lien ci-dessous pour plus d'informations
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html
Conformément à la première réponse, je l'élabore en détail pour Hadoop 1.x
-
Supposons que vous exécutiez ce script sur un pseudo modèle de distribution, vous obtiendrez probablement une ou deux listes d'utilisateurs (NameNodes) illustrés -
sur notre modèle entièrement distribué, vous disposez d'abord des droits d'administrateur pour effectuer ces opérations et il y aura un nombre N de listes de NameNodes (utilisateurs).
Alors maintenant, nous passons à notre point -
Accédez d'abord à votre répertoire d'accueil Hadoop et à partir de là, exécutez ce script -
bin/hadoop fs -ls /
Le résultat aimera ceci -
drwxr-xr-x - xuiob78126arif supergroup 0 2017-11-30 11:20 /user
donc ici xuiob78126arif
est mon nom node(master/user) et le répertoire NameNode(user) est -
/user/xuiob78126arif/
maintenant vous pouvez aller dans votre navigateur et rechercher l'adresse -
http://xuiob78126arif:50070
et à partir de là, vous pouvez obtenir le Cluster Summary, NameNode Storage
, etc.
Remarque :le script ne fournira des résultats que dans une seule condition, si au moins un fichier ou un répertoire existe dans DataNode, sinon vous obtiendrez -
ls: Cannot access .: No such file or directory.
donc, dans ce cas, vous mettez d'abord n'importe quel fichier par bin/hadoop fs -put <source file full path>
et là après lancer le bin/hadoop fs -ls /
script.
et maintenant j'espère que vous avez compris un peu votre problème, merci.