I'm posting this here in hopes that someone might be able to steer us in the right direction. We have a Cascalog process that we're using Spring-Hadoop & Spring-Batch to send to a remote Hadoop cluster. It seems as though Spring-Hadoop is doing something funky with the classpath/classloader and we're getting the following exception when we run it:
java.lang.ExceptionInInitializerError
at clojure.core__init.__init0(Unknown Source)
at clojure.core__init.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:266)
at clojure.lang.RT.loadClassForName(RT.java:2098)
at clojure.lang.RT.load(RT.java:430)
at clojure.lang.RT.load(RT.java:411)
at clojure.lang.RT.doInit(RT.java:447)
at clojure.lang.RT.<clinit>(RT.java:329)
at cascalog.Util.<clinit>(Util.java:29)
at jcascalog.Api.setApplicationConf(Api.java:99)
at com.test.DataShredder.run(DataShredder.java:113)
in trying to trace it we think that this is happening while clojure.lang.RT is scanning all the classes on the classpath. It seems to get to one class called StepExecution.class, which is part of the Spring Framework, and it throws this exception. We've got this posted over on the Spring forums too, since it's most likely something with Spring's manipulation of classpath and/or classloader while it's trying to get the MR jobs over to Hadoop.
If anyone has another idea, we'd love to hear it. We're kind of stuck right now and been working on it for a few days.
Thanks,
DAve