根据日志,例外是 OutOfMemoryError: GC overhead limit exceeded 在MapJoin HashTableLoader中。
OutOfMemoryError: GC overhead limit exceeded
检查当前设置并相应增加:
set hive.tez.container.size=4096MB; set hive.auto.convert.join.noconditionaltask.size=1370MB --recommended one third of container size
尝试使用内存优化的哈希表:
set hive.mapjoin.optimized.hashtable=true; set hive.mapjoin.optimized.hashtable.wbsize=10485760; --Default Value (10 * 1024 * 1024) --Optimized hashtable uses a chain of buffers to store data. This is one buffer size.
最后,如果没有任何帮助,您可以关闭mapjoin:
set hive.auto.convert.join=false;