如何消除hive中每个节点的分区限制?

ecfsfe2w  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(431)

我在 hive 里有一张分区的table。对于每个节点,我将分区限制设置为2000。

set hive.exec.max.dynamic.partitions.pernode=2000

现在到了2000年以后,我面临一个问题。所以我想知道是否有可能消除这个限制?
只是我不想为 hive.exec.max.dynamic.partitions.pernode 它应该处理任意数量的分区。
有人能帮我吗?

7kqas0il

7kqas0il1#

据我所知,这是做不到的,hive强制限制了它可以创建的动态分区的数量。据我所知,这个限制是因为每个分区都存储在一个单独的hdfs目录中,所以它们的数量是预先限定的,以防止性能问题。

myss37ts

myss37ts2#

我以前遇到过这个问题。在sql的末尾添加distribute by partition\u列。

insert overwrite table table_A partition (date_id)
select xxxxxxxx
from table_B
distribute by date_id;

使用“distribute by”时,相同的日期\u id值将被洗牌到一个减速机中。因此,reducer可能会处理多个date\u id,而不是随机的date\u id(这可能包括所有date\u id)。

相关问题