DistributedConjugateGradientSolver extends ConjugateGradientSolver implements Tool { @Override public void setConf(Configuration conf) { this.conf = conf; }  Vector runJob(Path inputPath, 
                       Path tempPath, 
                       int numRows, 
                       int numCols, 
                       Vector b, 
                       Preconditioner preconditioner, 
                       int maxIterations, 
                       double maxError); @Override Configuration getConf(); @Override void setConf(Configuration conf); @Override int run(String[] strings); DistributedConjugateGradientSolverJob job(); static void main(String[] args);  }
@Test public void testSolver() throws Exception { File testData = getTestTempDir("testdata"); DistributedRowMatrix matrix = new TestDistributedRowMatrix().randomDistributedMatrix( 10, 10, 10, 10, 10.0, true, testData.getAbsolutePath()); matrix.setConf(getConfiguration()); Vector vector = randomVector(matrix.numCols(), 10.0); DistributedConjugateGradientSolver solver = new DistributedConjugateGradientSolver(); Vector x = solver.solve(matrix, vector); Vector solvedVector = matrix.times(x); double distance = Math.sqrt(vector.getDistanceSquared(solvedVector)); assertEquals(0.0, distance, EPSILON); }