hadoop动态分区错[Error 20004]: Fatal error occurred when node tried to create too many dynamic partitions

错误:Caused by: org.apache.hadoop.hive.ql.metadata.HiveFatalException: [Error 20004]: Fatal error occurred when node tried to create too many dynamic partitions. The maximum number of dynamic partitions is controlled by hive.exec.max.dynamic.partitions and hive.exec.max.dynamic.partitions.pernode. Maximum was set to 100 partitions per node, number of dynamic partitions on this node: 101
问题排查步骤:
发生错误:
在这里插入图片描述

查看错误任务:
在这里插入图片描述

定位到错误的ID,错误的位置:作业已经提交到mapr任务里面:
查询hadoop原生界面,根据错误时间及id查询:
在这里插入图片描述

确定问题是动态分区导致的问题:
查看动态分区设置:
// 动态分区
set hive.exec.dynamic.partition=true;
// 非严格模式。可以不指定特定的分区。如果是严格模式,那么至少要指定一个分区
set hive.exec.dynamic.partition.mode=nonstrict;
// 最大分区数量
set hive.exec.max.dynamic.partitions.pernode=1000;

解决办法有两种:
1.扩大动态分区数量,这样会导致有很多小文件,不利于系统维护
2.修改脚本,尽量不要使用动态分区。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值