记录生产的一次OOM异常

这里写自定义目录标题

背景

为了让业务验收sql,特意一周时间在搞sql测试,测试环境中的运行一点问题都没有,但是一上生产,之前成功的代码,基本全军覆没。公司的数仓架构是Hive+Doris的形式,就是数仓在Hive上建立,最后的ads层要映射到Doris中,帆软通过读取Doris中的数据去进行可视化展示。

问题

测试环境中的Hive建表语句验收基本完毕,但是一到生产环境,hive中的表没有内容,dws与dwt数据正常,唯独ads层的hour这边没有数据。因为调度也没有报错,于是自己在服务器通过hive -f XX.sql去跑,果不其然就报错,基本是轮询异常等。

解决

在每个sql文件上面添加五个参数,设置hive的内存。

set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions.pernode=10000000;
set hive.exec.max.dynamic.partitions =10000000;
set hive.exec.max.created.files =10000000;
set hive.auto.convert.join=false;

经验

生产环境相对于测试环境会数据量比较多,容易照成OOM。还是把hive的参数往最大化设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值