Hey guys, I'm trying to use AVRO inside of a map/reduce job and I'm getting
this constructor error:
2009-11-03 17:56:39,521 FATAL org.apache.hadoop.mapred.TaskTracker:
Error running child : java.lang.VerifyError: Cannot inherit from final
class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at org.apache.avro.Schema.<clinit>(Schema.java:61)
On this line of code inside my M/R job:
private static Schema PROFILE_TYPE_SCHEMA = Schema.parse("{
\"type\":\"enum\", \"name\":\"Type\", \"symbols\": [\"One\",\"Two\",
\"Three\"] }");
It's weird, I was getting this same exact message inside of Idea when I
wrote a simple HelloWorld program to serialize/deserialize the
GenericRecords. So I tried executing the class directly from shell and no
longer had the problem. It was odd and I thought it was some Idea issue.
Until it cropped up with M/R job. Maybe I am including two different
versions of the same library in my classpath. I don't know.
Any clues?
Thanks,
Hiral