【发布时间】:2015-04-19 16:44:19
【问题描述】:
当一个 Hive 查询被执行时,有多少个 mapper/reducer 被执行或者当一个 Hive 查询被执行时,如何识别 man mapper 和 reducer 将如何被执行?
【问题讨论】:
当一个 Hive 查询被执行时,有多少个 mapper/reducer 被执行或者当一个 Hive 查询被执行时,如何识别 man mapper 和 reducer 将如何被执行?
【问题讨论】:
Mapper 的数量取决于 jobclient 计算的输入拆分的数量。
hive 查询就像一系列 Map reduce 作业。如果您编写一个简单的查询,如 select Count(*) from Employee,则只会执行一个 Map reduce 程序。如果您给出一个包含大量聚合和连接等的复杂查询,则将执行一系列 Map Reduce 程序,该程序使用较早的 MR 阶段输出作为下一个 MR 阶段的输入,最终结果将转储到 HDFS 中。
开发者可以在 Hive Shell 中将 reducer 的数量设置为 mapred.reduce.tasks=x
【讨论】: