我有一個s3存儲桶,其中包含大約300GB的日誌文件,沒有特別的順序。我應該如何分區s3中的數據以用於hadoop配置單元?
我想要使用日期時間戳將這些數據分區以便在hadoop-hive中使用,以便與特定日期相關的日誌行聚集在同一個s3「文件夾」中。例如,對於1月1日的日誌條目將匹配下列命名文件:
s3://bucket1/partitions/created_date=2010-01-01/file1
s3://bucket1/partitions/created_date=2010-01-01/file2
s3://bucket1/partitions/created_date=2010-01-01/file3
等
什麼是對我來說,轉換數據的最佳方式?我最好只運行一次讀入每個文件並將數據輸出到正確的s3位置的腳本?
我敢肯定,有一個很好的方式來使用hadoop來做到這一點,有人可以告訴我這是什麼嗎?
我已經試過:
我試圖通過傳遞所收集每個日期所有的日誌條目的映射器使用Hadoop的流然後寫那些直接到S3,在減速返回什麼,但似乎創造了重複。 (使用上面的例子,我結束了1月1日的250萬條目,而不是140萬)
有沒有人有任何想法如何最好的方法呢?