我試圖在Elastic MapReduce(EMR)上用自定義JAR運行一個作業。我試圖在一個目錄中處理大約1000個文件。當我使用參數s3n://bucketname/compressed/*.xml.gz
提交作業時,出現「匹配的0個文件」錯誤。如果我只傳遞文件的絕對路徑(例如s3n://bucketname/compressed/00001.xml.gz
),它運行良好,但只處理一個文件。我嘗試使用目錄名稱(s3n://bucketname/compressed/
),希望內部的文件將被處理,但只是將目錄傳遞給作業。在Elastic MapReduce上輸入多個文件
同時,我有一個較小的本地hadoop安裝。在那裏,當我通過我的作業通配符(/path/to/dir/on/hdfs/*.xml.gz
),它工作正常,所有1000個文件都正確列出。
如何讓EMR列出我的所有文件?
或者,我如何從代碼中列出s3目錄中的文件?然後我可以從這些文件中生成路徑。 –
它現在有效!在同一個桶中有一個名爲「compressed」的空文件。一旦我刪除了空文件,程序就開始工作。 –