为什么Hive中的桶的数量应该等于减速器的数量?

tyky79it  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(342)

在Hive中,为什么桶的数量应该等于减速器的数量?

pgky5nke

pgky5nke1#

因为这是使用mapreduce的最佳方式(其他条件都相同)。任务将在减速器之间分配。
在配置单元0.x和1.x中,必须指定以下内容:hive.enforce.bucketing=true。这意味着减速器的数量将根据表中铲斗的数量自动确定。在更高版本的hive(2.x)中,这是默认设置的。
资料来源:https://cwiki.apache.org/confluence/display/hive/languagemanual+ddl+bucketedtables

xxe27gdn

xxe27gdn2#

插入带扣工作台时推出的减速器数量是该工作台中铲斗数量的除数。选择最接近最大减数集的除数,并启动多个减数。
例子:

Num of buckets in a table 5956.
hive.exec.reducers.max=1009
divisors of 5956=1489*4
number of launched reducers: 4

因此,1489或4减速机可以推出,但由于最大减速机,可推出1009,只有4减速机将运行,这可能需要10年才能运行的大表。
设置hive.exec.reducers.max=2000将启动1489个reducer。

相关问题