08/04/15 20:50:43 INFO mapred.JobClient: Task Id : task_200804150848_0005_m_000000_2, Status : FAILED java.lang.AbstractMethodError: org.apache.mahout.clustering.hierarchial.HierarchialClusterDriver$LeafNodesMapper.map(Ljava/lang/Object;Ljava/lang/Object;Lorg/apache/hadoop/mapred/OutputCollector;Lorg/apache/hadoop/mapred/Reporter;)V at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:47) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:219) at org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2126) public static class LeafNodesMapper extends MapReduceBase implements Mapper { private DistanceMeasure distanceMeasure; private Vector testInstance; public DistanceMeasure getDistanceMeasure() { return distanceMeasure; } public void setDistanceMeasure(DistanceMeasure distanceMeasure) { this.distanceMeasure = distanceMeasure; } public Vector getTestInstance() { return testInstance; } public void setTestInstance(Vector testInstance) { this.testInstance = testInstance; } public void configure(JobConf jobConf) { super.configure(jobConf); try { String distanceMeasureClassName = jobConf.get(LeafNodesMapper.class.getName() + ".distanceMeasureClass"); if (distanceMeasureClassName != null) { this.distanceMeasure = (DistanceMeasure) Class.forName(distanceMeasureClassName).newInstance(); } FileSystem fs = FileSystem.get(jobConf); DenseVectorWritable testInstance = new DenseVectorWritable(); DataInputStream is = fs.open(new Path(jobConf.get(LeafNodesMapper.class.getName() + ".testInstanceFile"))); testInstance.readFields(is); is.close(); this.testInstance = testInstance.get(); } catch (Exception e) { throw new RuntimeException(e); } } private DoubleWritable distanceToLeafNode = new DoubleWritable(); /** * Maps the distance from the instance vector to the leaf node vector the the leaf node pk. * * @param leafNodePK * @param leafNodeVector * @param outputCollector * @param reporter * @throws java.io.IOException */ public void map(LongWritable leafNodePK, DenseVectorWritable leafNodeVector, OutputCollector outputCollector, Reporter reporter) throws IOException { distanceToLeafNode.set(distanceMeasure.distance(testInstance, leafNodeVector.get())); outputCollector.collect(distanceToLeafNode, leafNodePK); } }