2011-04-21 1 views
1

Nous utilisons Elastic Map Reduce d'Amazon pour effectuer de gros travaux de traitement de fichiers. Dans le cadre de notre flux de travail, nous devons parfois supprimer des fichiers de S3 déjà existants. Nous le faisons en utilisant l'interface Hadoop fs, comme ceci:

hadoop fs -rmr s3://mybucket/a/b/myfile.log 

Cela supprime le fichier de S3 de manière appropriée, mais à sa place laisse un fichier vide nommé "s3: // MyBucket/a/b_ dossier $ $" . Comme décrit dans this question, Hadoop's Pig ne peut pas gérer ces fichiers, de sorte que les étapes ultérieures du workflow peuvent s'étouffer sur ce fichier.

(Note, il ne semble pas question de savoir si nous utilisons -rmr ou -rm ou si nous utilisons s3:// ou s3n:// comme le schéma:. Toutes celles-ci présentent le comportement décrit)

Comment puis-je utiliser le hadoop fs interface pour supprimer les fichiers de S3 et assurez-vous de ne pas laisser ces fichiers gênants derrière?

Répondre

0

Je n'ai pas pu déterminer s'il était possible d'utiliser l'interface hadoop fs de cette manière. Cependant, l'interface s3cmd fait la bonne chose (mais seulement pour une touche à la fois):

s3cmd del s3://mybucket/a/b/myfile.log 

Cela nécessite la configuration d'un fichier ~/.s3cfg avec vos informations d'identification AWS premier. s3cmd --configure vous aidera interactivement à créer ce fichier.

Questions connexes