阿川CH
学海无涯,上栽上栽!
Toggle navigation
阿川CH
主页
归档
标签
hive map阶段可能出现高GC或OOM的几个场景
2018-08-28 16:50:12
1
0
0
cqc
1. Map Join 在map join中,每个map都需要提供小表规模的内存去做map join,而此时若小表比较大时,会缩减map的整体可用内存。若`hive.auto.convert.join.noconditionaltask.size`值比较大(超过container内存的一半),可根据实际情况降低该值(建议占用container大小的1/3)让join走shuffle的方式 2. 数据插入orc表 由于orc是列式存储,每列都会占用一些内存来做缓存,而当表的列比较多时,占用的内存可能比较多,可尝试降低`hive.exec.orc.default.buffer.size` 3. 数据插入带分区的表 当同时插入的分区比较多的时候,可启用`hive.optimize.sort.dynamic.partition`,但是该参数有可能造成查询变慢 4. 当map端有做部分数据聚合 如果聚合函数需要维持的数据较多时且聚合效果不明显时(比如数据去重但去重的不多),可直接禁止在map端做聚合`hive.map.aggr=false` 当然最万能的就是加大container size,但这会降低并行度
上一篇:
springboot下读取jar包中文件内容的方式
下一篇:
gitlab安装
文档导航