Split metadata size exceeded 10000000

问题描述/异常栈

Split metadata size exceeded 10000000

解决方案

如果为分区表,可通过分区剪裁,分批次查询后union all解决;
或重新生成该表,并在生成时启用小文件合并,启用小文件合并参数为:
添加参数
set hive.merge.mapfiles = true;

#在Map-only的任务结束时合并小文件

set hive.merge.mapredfiles= true;

#在Map-Reduce的任务结束时合并小文件

set hive.merge.size.per.task = 1024000000;

#合并后文件的大小为1GB左右

set hive.merge.smallfiles.avgsize=1024000000

#当输出文件的平均大小小于1GB时,启动一个独立的map-reduce任务进行文件merge

问题原因

该问题为查询表中存储小文件过多

作者:林帅