2015-11-07 17 views
0

我正在嘗試運行將在S3存儲桶中處理CloudFront日誌的Amazon EMR Hadoop過程。由於CloudFront在同一個存儲桶中生成大量日誌,因此如何過濾日誌文件而不會爲S3訪問生成額外的帶寬?如何篩選S3文件作爲Amazon EMR的輸入?

+0

提供有關要篩選的更多信息。您多長時間使用亞馬遜下載日誌文件?您可能可以在CloudFront上使用API​​來過濾日誌文件。 – Whitecat

+0

每天運行的某種EMR流程。我想檢索當天的所有日誌,並將它們用作EMR的輸入。您想向我展示如何使用CloudFront API作爲EMR Hadoop的輸入? – DarkVenture

回答

0

我發現我可以用FileSystem.globStatus()快速從CloudFront的過濾文件記錄鬥:

FileSystem fs = new Path("s3://logs").getFileSystem(conf); 
for (FileStatus fileStatus: fs.globStatus("s3://logs/prefix-2015-11-01*")) { 
    if (fileStatus.isFile()) { 
     FileInputFormat.addInputPath(myJob, fileStatus.getPath()); 
    } 
}