2017-04-01 46 views
0

我有一个分区表(在col1)蜂巢也bucketed(在col2在16桶),现在如果我想运行一个选择查询有多少映射器减速器的任务会产生?多少个地图和减少任务配置单元和桶表

+0

HDFS数据文件有多少存在于分区/桶的范围为您的WHERE子句中更多的细节?这些文件中有多少个HDFS块?或者,当使用像ORC/Parquet这样的复杂柱状格式时,文件中有多少条纹/什么?这些是Mappers的并行性单位。至于减速器,好吧,这取决于! –

回答

0

对于输入表的每个输入拆分,将分派一个映射器,其中输入拆分的默认大小将是块大小。

您可以通过修改mapreduce.input.fileinputformat.split.maxsize和mapreduce.input.fileinputformat.split.minsize属性来更改映射器的数量。

说到Hive中reducer的数量,默认情况下它使用hive.exec.reducers.bytes.per.reducer属性进行计算,其默认值为1GB。

您将可以通过修改上述属性来配置减速器的数量。尽管如此,您还可以通过使用mapred.reduce.tasks属性为作业设置不变数量的减速器。

您可以找到以下链接

How hadoop decides how many nodes will do map and reduce tasks