Je ne sais pas ce qui se passe ici mais j'essaie de copier un simple fichier d'un répertoire de mon système de fichiers local vers le répertoire spécifié pour hdfs.
Dans mon hdfs-site.xml, j'ai spécifié que le répertoire pour hdfs sera/home/vaibhav/Hadoop/dataNodeHadoopData en utilisant les propriétés suivantes -
<name>dfs.data.dir</name>
<value>/home/vaibhav/Hadoop/dataNodeHadoopData/</value>
and
<name>dfs.name.dir</name>
<value>/home/vaibhav/Hadoop/dataNodeHadoopData/</value>
J'utilise la commande suivante -
bin/hadoop dfs -copyFromLocal /home/vaibhav/ml-100k/u.data /home/vaibhav/Hadoop/dataNodeHadoopData
pour copier le fichier u.data depuis son emplacement de système de fichiers local vers le répertoire que j'ai spécifié en tant que répertoire Hdfs. Mais quand je fais cela, rien ne se passe - aucune erreur, rien. Et aucun fichier n'est copié sur le hdsf. Est-ce que je fais quelque chose de mal? Un problème d'autorisations pourrait être là?
Suggestions nécessaires.
J'utilise le mode de nœud unique pseudo distribué.
De plus, sur une note connexe, je veux demander que dans mon programme de réduction de carte, j'ai défini la configuration pour pointer sur le InputFilePath en tant que /home/vaibhav/ml-100k/u.data. Donc, ne copierait-il pas automatiquement le fichier d'un emplacement donné vers hdfs?
Je crois dfs.data.dir
et dfs.name.dir
doit pointer vers deux répertoires différents et existants. Assurez-vous également que vous avez formaté le namenode FS après avoir changé les répertoires dans la configuration.
Lors de la copie vers HDFS, vous spécifiez incorrectement la cible. La syntaxe correcte pour copier un fichier local sur HDFS est:
bin/hadoop dfs -copyFromLocal <local_FS_filename> <target_on_HDFS>
Exemple:
bin/hadoop dfs -copyFromLocal /home/vaibhav/ml-100k/u.data my.data
Cela créerait un fichier my.data
dans le répertoire personnel de votre utilisateur dans HDFS. Avant de copier des fichiers sur HDFS, assurez-vous de maîtriser d'abord le contenu du répertoire et la création du répertoire.