Closed ghost closed 9 years ago
Hmm. This is not a problem I've seen recently myself... What version of Leiningen are you using, and in what context are you getting this exception?
leiningen 2.4.1, and I get this error when I 'hadoop jar' the standalone uberjar.
Potential failure of imagination, but I'm just not seeing how it's possible to that exception with Clojure 1.6, at least without having an actual different data-reader var for hadoop.conf/configuration
. Maybe verify that the JAR's clojure/core.clj
file is in fact for 1.6?
I hear you, I'm having a similar struggle. Starting "lein repl" from the same directory echoes the version of clojure, in this case, this is what I see:
nREPL server started on port 53875 on host 127.0.0.1 - nrepl://127.0.0.1:53875
REPL-y 0.3.5, nREPL 0.2.6
Clojure 1.6.0
I tried to reproduce this a few ways, and the only way I could do it was by sneaking a version of Clojure 1.5.x onto the classpath. Could you try the following in your environment with your JAR?:
lein do clean, uberjar
zip -d target/prod-analytics-0.1.0-SNAPSHOT-standalone.jar data_readers.clj META-INF/MANIFEST.MF
hadoop jar target/prod-analytics-0.1.0-SNAPSHOT-standalone.jar clojure.main -e '(prn *clojure-version*)'
That is pretty amazing, i have to admit. In doing this I find that somehow I'm not getting what looks like 1.5, but instead 1.4. I have no idea how this could even be there.
$ hadoop jar prod-analytics-0.1.0-SNAPSHOT-standalone.jar clojure.main -e '(prn *clojure-version*)'
{:major 1, :minor 4, :incremental 0, :qualifier nil}
I'd check your HADOOP_CLASSPATH
environment variable, the contents of your configuration hadoop-env.sh
, and the output of running hadoop classpath
. At least one of those should reveal the offending JAR, and thus hopefully where it came from.
Due to similar issues (albeit not yet with Clojure itself), I generally avoid the hadoop jar
command and use hadoop classpath
to build a java
command-line placing my own (uber) JAR first. E.g., java -cp "example-standalone.jar:$(hadoop classpath)" clojure.main -m example.core
. You may also need/want to also set your distribution-specific java.library.path
or other native library path properties.
Thanks for the advice. I'm really excited to use parkour and you helped out a great deal here!
@cpb83 Did you solved this issue? Thanks
Hey,
I'm trying to get parkour running on our internal data system, and I'm getting an error that I can't really diagnose (as it claims to have been fixed in clojure 1.5 as clj-1034). Any ideas?
Here is the error:
and here is my project.clj: