今天执行insert overwrite语句的时候报了一个错误,如下:
Hive报错FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
查询(select)不报错,往表中插入数据(insert overwrite)就报上述错误,主要还查看不了具体的 job 任务日志,网上查看大部分说是内存问题,改了一些参数也是不行,之前有看到过说是数据问题的,我查看了数据,没什么问题,毕竟查找能查出来,只是不能插入,所以我就在想是不是数据格式的问题,然后改了一下压缩格式,将 GZIP 改为 SNAPPY 的压缩格式,然后就神奇的可以了,我猜测是因为之前的表的数据和我自建表的数据压缩格式不相同的原因,导致出现了 “FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask” 这个问题。
具体了解存储压缩格式: