Comment puis-je concaténer deux fichiers dans hadoop en un à l'aide d'Hadoop FS shell?
Je suis en train de travailler avec Hadoop 0.20.2 et voudrais concaténer deux fichiers en une seule avec le chat de commande shell, si possible (source: http://hadoop.apache.org/common/docs/r0.19.2/hdfs_shell.html)
Voici la commande que je vous soumets (les noms ont été changés):
**/path/path/path/hadoop-0.20.2> bin/hadoop fs -cat /user/username/folder/csv1.csv /user/username/folder/csv2.csv > /user/username/folder/outputdirectory/**
Il retourne bash: /utilisateurs/nom d'utilisateur/dossier/outputdirectory/: Aucun fichier ou répertoire de
J'ai aussi essayé de créer ce répertoire puis de l'exécuter à nouveau-j'ai toujours eu la "aucun fichier ou répertoire' erreur.
J'ai aussi essayé d'utiliser la commande cp pour copier dans un nouveau dossier et getmerge de les combiner entre eux, mais n'ont pas de chance avec les getmerge.
La raison pour le faire dans hadoop est que les fichiers sont énormes et il faudrait beaucoup de temps à télécharger, de fusion, et de le re-télécharger à l'extérieur de hadoop.
OriginalL'auteur user1397044 | 2012-05-15
Vous devez vous connecter pour publier un commentaire.
L'erreur se rapporte à vous d'essayer de rediriger la sortie standard de la commande de retour à la SF. Il ya des façons que vous pouvez faire cela en utilisant la
hadoop fs -put
de commande avec l'argument source étant un tiret:-getmerge
également sorties sur le système de fichiers local, pas HDFSUnforntunatley il n'existe pas de moyen efficace de fusionner plusieurs fichiers en un seul (à moins que vous voulez voir dans Hadoop 'ajout', mais dans votre version d'hadoop, qui est désactivé par défaut et potentiellement buggy), sans avoir à copier les fichiers sur une machine, puis de nouveau dans HDFS, si vous le faites que dans
Ajouter le support n'est pas disponible dans 20.2, car il n'est pas inclus. il a fusionné plus tard, en un suivi de version.
OriginalL'auteur Chris White
Pour concaténer tous les fichiers dans le dossier dans un fichier de sortie:
Si vous avez plusieurs dossiers sur hdfs et vous voulez concaténer des fichiers dans chacun de ces dossiers, vous pouvez utiliser un script shell pour ce faire. (note: ce n'est pas très efficace et peut être lente)
Syntaxe :
par exemple:
Explication:
Donc en gros, vous avez une boucle sur tous les fichiers de chat et de tous les dossiers contenus dans un fichier de sortie sur le hdfs.
OriginalL'auteur silencez