gpt4 book ai didi

amazon-s3 - 我应该如何对 s3 中的数据进行分区以便与 hadoop hive 一起使用?

转载 作者:可可西里 更新时间:2023-11-01 16:21:18 24 4
gpt4 key购买 nike

我有一个 s3 存储桶,其中包含大约 300gb 的日志文件,没有特定的顺序。

我想使用日期时间戳对这些数据进行分区以便在 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-streaming,该映射器收集每个日期的所有日志条目,然后将这些条目直接写入 S3,不为 reducer 返回任何内容,但这似乎会创建重复项。 (使用上面的例子,我最终得到 1 月 1 日的 250 万个条目,而不是 140 万个)

有没有人知道如何最好地解决这个问题?

最佳答案

如果 Hadoop 在任务跟踪器中有空闲槽,它将运行同一任务的多个副本。如果您的输出格式没有正确忽略生成的重复输出键和值(S3 可能就是这种情况;我从未使用过),您应该关闭推测执行。如果您的作业是仅限 map 的,请将 mapred.map.tasks.speculative.execution 设置为 false。如果您有 reducer ,请将 mapred.reduce.tasks.speculative.execution 设置为 false。查看 Hadoop: The Definitive Guide 获取更多信息。

关于amazon-s3 - 我应该如何对 s3 中的数据进行分区以便与 hadoop hive 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4454321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com