MMMapper 类代码:
package com;
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.input.FileSplit;
public class MMMapper extends Mapper<Object, Text, Text, Text> {
private String tag; //current matrix
private int crow =4 ;// 矩阵 A 的行数
private int ccol =4 ;// 矩阵 B 的列数
private static int arow = 0; //current arow
private static int brow = 0; //current brow
@Override
protected void setup(Context context) throws IOException,
InterruptedException {
// TODO get inputpath of input data, set to tag
FileSplit fs = (FileSplit)context.getInputSplit();
tag = fs.getPath().getParent().getName();
}
/**
* input data include two matrix files
*/
public void map(Object key, Text value, Context context)
throws IOException, InterruptedException {
StringTokenizer str = new StringTokenizer(value.toString());
if ("matrixA".equals(tag)) { //left matrix,output key:x,y
int col = 0;
while (str.hasMoreTokens()) {
String item = str.nextToken(); //current x,y = line,col
for (int i = 0; i < ccol; i++) {