gpt4 book ai didi

apache - Hive 查询花费大量时间来启动 map-reduce 作业

转载 作者:可可西里 更新时间:2023-11-01 15:38:59 32 4
gpt4 key购买 nike

我们正在使用 Hive 进行临时查询,并且有一个 Hive 表,该表按两个字段 (date,id) 进行分区。

现在每个日期大约有 1400 个 ID,所以在一天左右添加了很多分区。实际数据驻留在 s3 中。现在我们面临的问题是假设我们从表格中执行一个月的 select count(*) 然后启动 map 需要相当长的时间(大约:1 小时 52 分钟)减少工作。

当我在 Hive 详细模式下运行查询时,我可以看到它这次花费的时间实际上决定了要生成多少个映射器(计算拆分)。有什么方法可以减少启动 map-reduce 作业的延迟时间吗?

这是在此延迟时间内记录的日志消息之一:

13/11/19 07:11:06 INFO mapred.FileInputFormat: Total input paths to process : 1
13/11/19 07:11:06 WARN httpclient.RestS3Service: Response '/Analyze%2F2013%2F10%2F03%2F465' - Unexpected response code 404, expected 200

最佳答案

这可能是因为对于过度分区的表,查询计划阶段需要很长时间。更糟糕的是,查询计划阶段本身可能比查询执行阶段花费更长的时间。

克服此问题的一种方法是调整您的metastore。但更好的解决方案是设计一个高效的模式并摆脱不必要的分区。相信我,您真的不想要太多的小分区。

作为替代方案,您也可以在发出查询之前尝试将 hive.input.format 设置为 org.apache.hadoop.hive.ql.io.CombineHiveInputFormat

HTH

关于apache - Hive 查询花费大量时间来启动 map-reduce 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20066998/

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