最近公司有个比较蛋疼的需求:公司的数据是经过zip压缩的,再map端先解压、解析得到原始数据,要把这原始数据保存到hbase中,还要对原始数据进行统计分析,分析结果保存在hdfs上。为了减少磁盘IO读取,这两个步骤要在同一个mapreduce里完成。没办法,只得硬着头皮去干。
先说下多文件输出。新版API有个MultipleOutputs类可以实现多文件输出,旧版有MultipleOutputs和MultipleOutputFormat也可以实现。这里只研究新版的。
先在创建job的时候配置 MultipleOutputs: