我有一个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万)
有没有人有任何想法如何最好的方法呢?