Hive uses the jobconf compression codec for all map-reduce jobs. This includes both mapred.map.output.compression.codec and mapred.output.compression.codec.
In some cases, we want to distinguish between the codec used for intermediate map-reduce jobs (that produces intermediate data between jobs) and the final map-reduce jobs (that produces data stored in tables).
For intermediate data, lzo might be a better fit because it's much faster; for final data, gzip might be a better fit because it saves disk spaces.
We should introduce two new options:
And use these 2 options to override the mapred.output.compression.* in the FileSinkOperator that produces intermediate data.
Note that it's possible that a single map-reduce job may have 2 FileSInkOperators: one produces intermediate data, and one produces final data. So we need to add a flag to fileSinkDesc for that.