Subject: The perennial "Error: java.lang.ClassNotFoundException: org.apache.mahout.math.Vector" problem


The 'lib/' convention is not a feature of Java, it's a feature of hadoop.

It is activated by calling the 'setJar' API in the job conf, passing
the name of the jar that contains the lib folder.

As a convenience (and a trap for the unwary), there is a convenience:
setJarByClass. This takes a Class<?> instead of a string jar path. It
attempts to derive a jar name from the class reference.

Mahout then has a series of self-contained classes that create JobConf
objects, and make calls to setJarByClass, passing Whatever.class. If
one of those classes somehow wanders into lib/ (like, a person
building a job jar puts mahout into 'lib/' and then tries to use a
Mahout job class) the call to setJarByClass is at best ineffective and
at worst destructive.

On Mon, May 9, 2011 at 11:07 AM, Jake Mannix <[EMAIL PROTECTED]> wrote: