[nycbug-talk] mapreduce, hadoop, and UNIX

Isaac Levy ike at lesmuug.org
Sat Aug 25 10:48:21 EDT 2007


Hey All,

This *may* be a thread which is aimed at the wrong list, but I  
thought it's appropriate.  Feel free to yell at me to take the thread  
elsewhere.

--
Pretext:
I've been working on a personal project lately which has landed me  
with some home-scale monster number-crunching tasks, as well as some  
quickly scaling massive storage requirements.
(Fun fun fun, I'm trying to scan and OCR my personal book collection,  
and I'm getting scared out of my mind now that I'm making some  
headway :)

Anyhow, I've been looking really closely at Google's MapReduce system/ 
algorithm spec, which seems to be at the heart of how they make their  
massive clusters work.  This seems to be the current hot topic in  
macho computing.
http://en.wikipedia.org/wiki/MapReduce

Fun for UNIX folks, Rob Pike made an awk-like utility/language called  
'Sawzall' which uses Google's internal MapReduce API- I think it's  
pretty interesting.
http://labs.google.com/papers/sawzall.html

With that, I've also found that Yahoo is putting massive support into  
an implementation of the MapReduce idea, Open Source as a part of the  
Apache Project:
http://lucene.apache.org/hadoop/

There's other implementations cropping up all over, it seems.  Like I  
said, it's the current buzz...

With all that, many of us have noticed that Google is good at scaling  
patterns in computing- to bastardize their whole tech. operation,  
it's their big trick.  When I say scaling patterns, I mean: applying  
classical computing paradigms and methodology at wild scales.  (E.G.  
with the Google Filesystem, it's simply a filesystem where the disk  
blocks exist as network resources, etc...  You see what I mean with  
scale?)


--
Question:

Anyhow, I'm looking for more patterns in this MapReduce stuff,  
because I'm simply not one to dive headfirst into 'buzz-tech'.  With  
that, aside from the map, and reduce, functions found in many  
programming languages,
http://en.wikipedia.org/wiki/Map_%28higher-order_function%29
http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29

can anyone shed some light on similar prior works in distributed  
computing and RPC systems which are 'old classics' in UNIX?  These  
distributed computing problems simply can't be new.

To be really straight, what I'm getting at, is why is this more or  
less useful than intelligently piping commands through ssh?  What  
about older UNIX rpc mechanisms?  Aren't there patterns in even  
kernel source code which match this work, or are even computationally  
more sophisticated and advanced?

 From kernel to userland to network, I'm dying to find similar works,  
any help is much appreciated!

Rocket-
.ike


---
p.s.
If anyone is interested in book-scanning stuff, Google happens to  
currently host the Open Source 'tessarect' project, a very nice OCR  
software- a very clean command-line application for OCR processing.   
(I was actually inspired to start all this stuff based on how much  
fun I had screwing around with tessarect).  Apache licence, /me shrugs.
http://code.google.com/p/tesseract-ocr/





More information about the talk mailing list