I’m pleased to announce the first public release of Parkour, a library
for writing Hadoop MapReduce applications in idiomatic Clojure.  Parkour
takes your Clojure code’s functional gymnastics and sends it
free-running across the urban environment of your Hadoop cluster.

    https://github.com/damballa/parkour/

Parkour aims to provide deep Clojure integration for Hadoop.  Programs
using Parkour are normal Clojure programs, using standard Clojure
functions instead of new framework abstractions.  Programs using Parkour
are also full Hadoop programs, with complete access to absolutely
everything possible in raw Java Hadoop MapReduce.  If you know Clojure,
and you know Hadoop, then you’re most of the way to knowing Parkour.

Here is the core of the obligatory “word count” MapReduce program,
written using Parkour:

    (defn mapper
      [conf]
      (fn [context input]
        (->> (mr/vals input)
             (r/mapcat #(str/split % #"\s+"))
             (r/map #(-> [% 1])))))
    
    (defn reducer
      [conf]
      (fn [context input]
        (->> (mr/keyvalgroups input)
             (r/map (fn [[word counts]]
                      [word (r/reduce + 0 counts)])))))
    
    (defn word-count
      [dseq dsink]
      (-> (pg/input dseq)
          (pg/map #'mapper)
          (pg/partition [Text LongWritable])
          (pg/combine #'reducer)
          (pg/reduce #'reducer)
          (pg/output dsink)))

Parkour includes detailed documentation, ranging from a quickstart
introduction through detailed discussions of several specific aspects:

    https://github.com/damballa/parkour/#documentation

Although this is the first public release of Parkour, the Damballa R&D
team has been using it extensively since beginning serious development
earlier this year.  We do also use and will continue to use Cascalog,
but we’ve found that Parkour’s simpler model and more direct Hadoop
integration is a better fit for many problems.

I am personally incredibly excited about this release.  I will be at
this year’s Clojure/conj, and will be more than happy to discuss Parkour
in detail with those interested.

Questions and pull requests welcome!

-- 
Marshall Bockrath-Vandegrift <llas...@damballa.com>
Principal Software Engineer, Damballa R&D

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to