我在hive中有一个分区表(在col1上),它也是bucketed(在16个存储区中的col2上),现在如果我想运行一个select查询将生成多少mapper和reducers任务?
答案 0 :(得分:0)
对于输入表的每个输入拆分,将调度一个映射器,其中输入拆分的默认大小为块大小。
您可以通过修改mapreduce.input.fileinputformat.split.maxsize和mapreduce.input.fileinputformat.split.minsize属性来更改映射器的数量。
说到Hive中的reducer数量,默认情况下使用hive.exec.reducers.bytes.per.reducer属性计算,其默认值为1GB。
您可以通过修改上述属性来配置Reducer的数量。您仍然可以使用mapred.reduce.tasks属性为作业设置常量的reducer数。
您可以在以下链接中找到更多详细信息
How hadoop decides how many nodes will do map and reduce tasks