Hive 调整inputsplit size来增加MAP数
线上一个Hive(CDH4.2.0)的清洗Job出错,查看日志发现其中一个MAP OOME: 查看了日志这个HQL是2个表进行Join,splits=2即开了2个MAP进行分别处理,其中一个大表123MB(<dfs.block.size=128MB),500W行左右,应该是数据量超过了MAP的内存了,通过对比前一天的日志可以确认: 由于是临时表,设置了mapred.reduce.tasks=20重跑新生成临时表,Join清洗成功: 由于MR的inputsplit size=min{minsplitsize,max{maxsplitsize,blocksize}},因此想是否可以通过设置mapred.max.split.size=32MB来起多个MAP这种方式解决