Dependency issues for cascading-cassandra

35 views
Skip to first unread message

James Aley

unread,
Feb 14, 2014, 6:02:27 AM2/14/14
to clojure-...@googlegroups.com
Hey guys,

I hope this is an OK place to post questions related to the cascading-cassandra library? I didn't see a dedicated mailing list for that library on the project page, but it seemed to be somewhat related Cassaforte. Apologies if this is considered off-topic.

I'm trying to to access some data in a Cassandra cluster from Cascalog. cascading-cassandra looks like the obvious tool for the job, but I'm confused about dependencies, version, etc.

Is anyone able to tell me what a working setup would be, in terms of what version of cascading-cassandra, the cassandra client itself (that doesn't seem to be pulled in as a dependency?), and what exclusions I might need, for working with Cascalog 2.0 and Cassandra 2.0+?

My current project file setup is this:

  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.clojure/data.json "0.2.4"]
                 [cascalog/cascalog-core "2.0.0"]
                 [org.apache.hadoop/hadoop-core "1.1.2"]
                 [org.codehaus.jackson/jackson-mapper-asl "1.9.13"]
                 [cascading-cassandra "1.0.0-rc6"
                  :exclusions [org.slf4j/slf4j-api]]]

I suspected something was sub-optimal as soon as I pulled in cascading-cassandra, as logging suddenly stopped working. The whole SLF4J / log4j dependency injection business drives me insane virtually every time I want to use more than one Apache-related project, so nothing new there anyway :-)

Any help much appreciated. As I said before, sorry if I'm approaching the wrong group here - will be happy to take my questions to more appropriate fora should anyone have a recommendation!

Many thanks,

James.

Alex Petrov

unread,
Feb 17, 2014, 10:40:02 AM2/17/14
to clojure-...@googlegroups.com, James Aley
Hi James,

Sorry for such latency (got some health-related issues, wasn’t capable of thinking properly & in time)


Although working with Cassandra 2.0 should be fine at all times, we’ve tested it against 2.0 and it worked well.

Cassandra itself is not pulled as a dependency because we’re using a forked version of Cassandra-Hadoop, because of some issues related to 1.x and 2.x compatibility.


Could you fire up an issue? We’ll fix by moving that properties file to test-only realm…

Other than that your setup LGTM. 


--
You received this message because you are subscribed to the Google Groups "Cassaforte, a Clojure client for Apache Cassandra" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure-cassan...@googlegroups.com.
To post to this group, send email to clojure-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/clojure-cassandra/eb88d5c4-410c-4796-9b16-6a73e7f6c921%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

James Aley

unread,
Feb 17, 2014, 4:40:25 PM2/17/14
to Alex Petrov, clojure-...@googlegroups.com
Hey Alex,

Thanks for the response!

So, I actually managed to make logging come back by adding some dependency exclusions (recommended by Leiningen's warnings):

  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.clojure/data.json "0.2.4"]
                 [cascalog/cascalog-core "2.0.0"]
                 [org.codehaus.jackson/jackson-mapper-asl "1.9.13"]
                 [cascading-cassandra "1.0.0-rc6"
                  :exclusions [log4j org.codehaus.plexus/plexus-utils
                               commons-codec commons-lang]]
                 [org.apache.cassandra/cassandra-all "2.0.5"
                  :exclusions [log4j org.slf4j/slf4j-log4j12 commons-codec]]]

Happy to raise an issue, of course. Not entirely sure I understand what the cause of the problem was though! :-)

Couple of minor issues I had getting started, by the way. I'm happy to raise issues for these too, but just want to check I wasn't being crazy:

 * Those additional dependencies, cassandra-all and jackson-mapper-asl don't appear to be documented in the README. The first time I tried to use the Tap, I got ClassNotFound exceptions and had to Google the class names to figure out which library they come from to get things working. I feel like maybe they should either be dependencies or documented?

 * The version of README.md on master, the default GitHub home for the project, references 1.0.0-rc5 as latest stable, but the usage instructions seem to be accurate for rc6 only, as sink.outputCQL was mandatory on rc5. Presumably it should reference rc6?

Thanks again for the help! I'm now just having network issues reaching Cassandra... hopefully that's something I can figure out tomorrow!


James.
--
James Aley

Team Lead | SwiftKey | +44 7763 812963
james...@swiftkey.net | www.swiftkey.net | @swiftkey | fb.com/swiftkey




SwiftKey is a trademark of TouchType Ltd, a limited company registered in England and Wales, number 06671487

UK Headquarters: SwiftKey, 91-95 Southwark Bridge Road, London, SE1 0AX, UK

CONFIDENTIALITY NOTICE: The information in this e-mail is confidential and privileged; it is intended for use solely by the individual or entity named as the recipient hereof. Disclosure, copying, distribution, or use of the contents of this e-mail by persons other than the intended recipient is strictly prohibited and may violate applicable laws. If you have received this e-mail in error, please delete the original message and notify us by email immediately. Thank you. TouchType Ltd.

Reply all
Reply to author
Forward
0 new messages