目的
Mapper多个输入源,处理后变成一个输出。
reduce多输出源,根据输出的数据,按照自己的要求来决定,输出到不同的文件里。
案例
有以下两个文件,作为输入源(Mapper处理)
最后把每个人的成绩打印到不同的文件里(Reduce处理)
tom
math 90
english 98
jary
math 78
english 87
rose
math 87
english 90
tom math 67 english 87
jary math 59 english 80
rose math 79 english 60
代码实现
- 写自定义输入输出组件
- 写两个mapper,分别处理不同的文件
- Reduce代码实现
package hadoop04;
import java.io.IOException;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.output.MultipleOutputs;
public class ReduceDemo extends Reducer<Text, Text, Text, Text>{
private MultipleOutputs<Text, Text> mos;
@Override
protected void setup(Red