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?