我们使用 Hive 进行 Ad-hoc 查询,并有一个 Hive 表,它在两个字段上进行分区(date,id)
。
现在对于每个日期,大约有 1400 个 id,因此在一天内大约添加了许多分区。实际数据位于 s3 中。现在我们面临的问题是假设我们select count(*)
从表中执行一个月,然后启动 map reduce 作业需要相当长的时间(大约: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