1. Mahout
  2. MAHOUT-1006

Example from book no longer works - prepare20newsgroups broken with Lucene upgrade


    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 0.7
    • Fix Version/s: 0.7
    • Component/s: None
    • Labels:


      The StandardAnalyzer from Lucene no longer has a no-args constructor. Our code uses reflection to create this class, but looks for a no-args constructor and that causes this:

      ./bin/mahout prepare20newsgroups -p 20news-bydate-train/ -o 20news-train/ -a org.apache.lucene.analysis.standard.StandardAnalyzer -c UTF-8  
      MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath.
      no HADOOP_HOME set, running locally
      Unable to find a $JAVA_HOME at "/usr", continuing with system-provided Java...
      SLF4J: Class path contains multiple SLF4J bindings.
      SLF4J: Found binding in [jar:file:/Users/hadoop/mahout/examples/target/mahout-examples-0.7-SNAPSHOT-job.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: Found binding in [jar:file:/Users/hadoop/mahout/examples/target/dependency/slf4j-jcl-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: Found binding in [jar:file:/Users/hadoop/mahout/examples/target/dependency/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: See for an explanation.
      Exception in thread "main" java.lang.IllegalStateException: java.lang.NoSuchMethodException: org.apache.lucene.analysis.standard.StandardAnalyzer.<init>()
      	at org.apache.mahout.common.ClassUtils.instantiateAs(
      	at org.apache.mahout.common.ClassUtils.instantiateAs(
      	at org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups.main(
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(
      	at java.lang.reflect.Method.invoke(
      	at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(
      	at org.apache.hadoop.util.ProgramDriver.driver(
      	at org.apache.mahout.driver.MahoutDriver.main(
      Caused by: java.lang.NoSuchMethodException: org.apache.lucene.analysis.standard.StandardAnalyzer.<init>()
      	at java.lang.Class.getConstructor0(
      	at java.lang.Class.getConstructor(
      	at org.apache.mahout.common.ClassUtils.instantiateAs(
      	... 9 more

      This is really bad.


        Ted Dunning created issue -
        Ted Dunning made changes -
        Field Original Value New Value
        Attachment MAHOUT-1006.patch [ 12525486 ]
        Ted Dunning made changes -
        Status Open [ 1 ] Patch Available [ 10002 ]
        Grant Ingersoll made changes -
        Assignee Ted Dunning [ tdunning ] Grant Ingersoll [ gsingers ]
        Grant Ingersoll made changes -
        Assignee Grant Ingersoll [ gsingers ] Robin Anil [ robinanil ]
        Robin Anil made changes -
        Status Patch Available [ 10002 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Sean Owen made changes -
        Status Resolved [ 5 ] Closed [ 6 ]


          • Assignee:
            Robin Anil
            Ted Dunning
          • Votes:
            0 Vote for this issue
            4 Start watching this issue


            • Created: