我們使用亞馬遜的Elastic Map Reduce來執行一些大型文件處理作業。作爲我們工作流程的一部分,我們偶爾需要從S3中刪除可能已經存在的文件。我們可能會使用Hadoop的FS接口,就像這樣:
hadoop fs -rmr s3://mybucket/a/b/myfile.log
這適當去除S3的文件,但在它的位置留下一個名爲的空文件「S3:// mybucket/A/B_ $文件夾$」 。如this question中所述,Hadoop的Pig無法處理這些文件,因此後面的工作流步驟可能會阻塞該文件。
(注意,它似乎並沒有不管我們使用-rmr
或-rm
或者我們是否使用s3://
或s3n://
的方案:所有這些展品的描述的行爲)
如何使用hadoop fs
接口從S3中刪除文件,並確保不會將這些麻煩的文件留在後面?