« Scalability Worst Practices | Main | Lucasfilm: The Real Magic is in the Data Center »

Product: Happy = Hadoop + Python

Has a Java only Hadoop been getting you down? Now you can be Happy. Happy is a framework for writing map-reduce programs for Hadoop using Jython. It files off the sharp edges on Hadoop and makes writing map-reduce programs a breeze. There's really no history yet on Happy, but I'm delighted at the idea of being able to map-reduce in other languages. The more ways the better.

From the website:

Happy is a framework that allows Hadoop jobs to be written and run in Python 2.2 using Jython. It is an
easy way to write map-reduce programs for Hadoop, and includes some new useful features as well.
The current release supports Hadoop 0.17.2.

Map-reduce jobs in Happy are defined by sub-classing happy.HappyJob and implementing a
map(records, task) and reduce(key, values, task) function. Then you create an instance of the
class, set the job parameters (such as inputs and outputs) and call run().

When you call run(), Happy serializes your job instance and copies it and all accompanying
libraries out to the Hadoop cluster. Then for each task in the Hadoop job, your job instance is
de-serialized and map or reduce is called.

The task results are written out using a collector, but aggregate statistics and other roll-up
information can be stored in the happy.results dictionary, which is returned from the run() call.

Jython modules and Java jar files that are being called by your code can be specified using
the environment variable HAPPY_PATH. These are added to the Python path at startup, and
are also automatically included when jobs are sent to Hadoop. The path is stored in happy.path
and can be edited at runtime.

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>