我在 hive 里有一张分区的table。对于每个节点,我将分区限制设置为2000。
set hive.exec.max.dynamic.partitions.pernode=2000
现在到了2000年以后,我面临一个问题。所以我想知道是否有可能消除这个限制?
只是我不想为 hive.exec.max.dynamic.partitions.pernode
它应该处理任意数量的分区。
有人能帮我吗?
我在 hive 里有一张分区的table。对于每个节点,我将分区限制设置为2000。
set hive.exec.max.dynamic.partitions.pernode=2000
现在到了2000年以后,我面临一个问题。所以我想知道是否有可能消除这个限制?
只是我不想为 hive.exec.max.dynamic.partitions.pernode
它应该处理任意数量的分区。
有人能帮我吗?
2条答案
按热度按时间7kqas0il1#
据我所知,这是做不到的,hive强制限制了它可以创建的动态分区的数量。据我所知,这个限制是因为每个分区都存储在一个单独的hdfs目录中,所以它们的数量是预先限定的,以防止性能问题。
myss37ts2#
我以前遇到过这个问题。在sql的末尾添加distribute by partition\u列。
使用“distribute by”时,相同的日期\u id值将被洗牌到一个减速机中。因此,reducer可能会处理多个date\u id,而不是随机的date\u id(这可能包括所有date\u id)。