package com.skp.experiment.math.matrix.dense;
import org.apache.hadoop.conf.Configurable;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.mapreduce.Partitioner;
public class MatrixKeyPartitioner extends Partitioner<MatrixKey, MatrixValue> implements Configurable {
public static final String J_BLOCK_SIZE = MatrixKeyPartitioner.class.getName() + ".JBlockSize";
private Configuration conf;
private static int JB;
@Override
public int getPartition(MatrixKey key, MatrixValue value, int numPartitions) {
JB = Integer.parseInt(conf.get(J_BLOCK_SIZE));
return (key.getIndex1() * JB + key.getIndex2()) % numPartitions;
}
@Override
public Configuration getConf() {
return conf;
}
@Override
public void setConf(Configuration conf) {
this.conf = conf;
}
}