I moved recently some of the "Decision Forest" examples from the core project to the examples project. While in core they worked perfectly in hadoop 0..19.1 (pseudo-distributed), but now they don't !!!
For example, running my org.apache.mahout.df.BuildForest gives the following exception: .... 09/08/17 12:02:36 INFO mapred.JobClient: Running job: job_200908171136_0020 09/08/17 12:02:37 INFO mapred.JobClient: map 0% reduce 0% 09/08/17 12:02:43 INFO mapred.JobClient: Task Id : attempt_200908171136_0020_m_000000_0, Status : FAILED java.lang.NoClassDefFoundError: com/thoughtworks/xstream/XStream at org.apache.mahout.utils.StringUtils.<clinit>(StringUtils.java:28) at org.apache.mahout.df.mapred.Builder.getTreeBuilder(Builder.java:117) at org.apache.mahout.df.mapred.MapredMapper.configure(MapredMapper.java:74) at org.apache.mahout.df.mapred.partial.Step1Mapper.configure(Step1Mapper.java:75) at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:58) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:83) ... So I tried instead to run one of mahout's : following the wiki, kmeans gives me the following error: ... 09/08/17 11:59:27 INFO kmeans.KMeansDriver: Iteration 4 ... 09/08/17 11:59:43 INFO kmeans.KMeansDriver: Clustering 09/08/17 11:59:43 INFO kmeans.KMeansDriver: Running Clustering 09/08/17 11:59:43 INFO kmeans.KMeansDriver: Input: output/data Clusters In: output/clusters-4 Out: output/points Distance: org.apache.mahout.utils.EuclideanDistanceMeasure 09/08/17 11:59:43 INFO kmeans.KMeansDriver: convergence: 0.5 Input Vectors: org.apache.mahout.matrix.SparseVector 09/08/17 11:59:43 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 09/08/17 11:59:43 INFO mapred..FileInputFormat: Total input paths to process : 2 09/08/17 11:59:43 INFO mapred.JobClient: Running job: job_200908171136_0019 09/08/17 11:59:44 INFO mapred.JobClient: map 0% reduce 0% 09/08/17 11:59:54 INFO mapred.JobClient: Task Id : attempt_200908171136_0019_m_000000_0, Status : FAILED java.lang.NoClassDefFoundError: com/google/gson/reflect/TypeToken at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:637) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) at java.net.URLClassLoader.access$000(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:212) at java.security.AccessController.doPrivileged(Native Method) ... The problem seems related to the fact that mahout-core.jar is being packed inside examples.jar. So I modified maven/build.xml to pack the core classes instead (because they are available): Index: maven/build.xml =================================================================== --- maven/build.xml (revision 804891) +++ maven/build.xml (working copy) @@ -45,9 +45,9 @@ includes="**/*.jar"/> <zipfileset dir="${core-lib}" prefix="lib" includes="**/*.jar" excludes="hadoop-*.jar"/> - <zipfileset dir="../core/target/" prefix="lib" includes="apache-mahout-core-${version}.jar"/> + <zipfileset dir="../core/target/classes"/> <zipfileset dir="${dest}/dependency" prefix="lib" - includes="**/*.jar"/> + includes="**/*.jar" excludes="apache-mahout-core-${version}.jar"/> <zipfileset dir="../core/target/dependency" prefix="lib" includes="**/*.jar"/> </jar> This seems to solve the problem, but I didn't try it on all examples __________________________________________________ Do You Yahoo!? En finir avec le spam? Yahoo! Mail vous offre la meilleure protection possible contre les messages non sollicités http://mail.yahoo.fr Yahoo! Mail