Hive 动态分区插入数据总结
1、问题描述
执行以下sql导致reduce端OOM,分区数有485个按天分区,数据主要是存量数据一次性导入数仓中遇到的问题。
服务器 :8核12G内存
Map内存参数值:
mapreduce.map.memory.mb=1024
mapreduce.map.java.opts=-Xmx768m -XX:+UseConcMarkSweepGC;
Reduce内存参数值:
mapreduce.reduce.memory.mb=2048
mapreduce.reduce.java.opts=-Xmx1536m -XX:+UseConcMarkSweepGC;
Sql语句:
分区是按照天分区:
使用以下SQL语句从ods层动态分区插入到dwd层,因为从数据库存量数据一次性抽取,数据量大概3w多,总的分区数在578个,在以上配置即使加大map以及reduce的内存,还是会抛OOM(以测试过)。
所以先抽取部分分区数据做优化测试,选取100多个不到120个分区数,sql如下:
报OOM截图: