On Feb 9, 2006, at 4:21 PM, Bryan A. Pendleton wrote:

I agree that the first fix is better (handling the file: part of the URL).

I don't quite agree about not setting a Jar file masking the problem -
certainly, testing things out in debugging environments makes it not
guaranteed that there's a Jar there. In any case, it would certainly be
better to fail-fast there, but, at this point, fail-fast by obscure NPE
isn't necessarily better. Is there something better?

Given the problems with error checking, I'd suggest making the findContainingJar a public static method of JobConf, and letting the user application call it explicitly. Otherwise, we would need to throw an exception (RuntimeException?) with a message about the class not being found in a jar file.

The only case where not having the jar file works is either that both your map and reduce class are in hadoop.jar, which is how Grep worked, or you are using the local runner. So, you should pretty much always have a jar. *smile*

-- Owen

Reply via email to