我在Hive中有一个分区表。对于每个节点,我已将分区限制设置为2000。
set hive.exec.max.dynamic.partitions.pernode=2000
现在,在2000年之后,我遇到了一个问题。所以我想了解是否有可能消除这种限制?
我只是不想为hive.exec.max.dynamic.partitions.pernode
设置任何值。它应该处理任意数量的分区。
有人可以帮我这个吗?
答案 0 :(得分:3)
之前我遇到过这个问题。在SQL的末尾通过partition_column添加分发。
insert overwrite table table_A partition (date_id)
select xxxxxxxx
from table_B
distribute by date_id;
使用"按"分配,相同的date_id值将被混洗到一个reducer中。因此,reducer可以处理几个date_id而不是随机的date_id(这可能包括所有date_id)。
答案 1 :(得分:1)
据我所知,无法完成,Hive enforces可以创建动态分区数量的限制。据我所知,这个限制与每个分区存储在一个单独的HDFS目录中的事实有关,所以它们的数量在某种程度上是预先限制的,以防止出现性能问题。