Apache Hadoop on Mac OS X

Hadoop
For some reasons I started to play with Apache Hadoop (Core):

Hadoop is a software platform that lets one easily write and run applications that process vast amounts of data.

Here’s what makes Hadoop especially useful:

  • Scalable: Hadoop can reliably store and process petabytes.
  • Economical: It distributes the data and processing across clusters of commonly available computers. These clusters can number into the thousands of nodes.
  • Efficient: By distributing the data, Hadoop can process it in parallel on the nodes where the data is located. This makes it extremely rapid.
  • Reliable: Hadoop automatically maintains multiple copies of data and automatically redeploys computing tasks based on failures.

Hadoop implements MapReduce, using the Hadoop Distributed File System (HDFS). MapReduce divides applications into many small blocks of work. HDFS creates multiple replicas of data blocks for reliability, placing them on compute nodes around the cluster. MapReduce can then process the data where it is located.

Hadoop has been demonstrated on clusters with 2000 nodes. The current design target is 10,000 node clusters.

I followed the Quickstart guide and I can confirm that it works on Mac OS X too, but I managed only to make it run in “standalone” mode: usefull for first-stage development and debugging.
Continue…

How Google works

I was looking for info about MapReduce and I thought that would have been a good idea to take a look at the Tech Talks published by Google. Here we go.


Title: 2007 Seattle Conference on Scalability: MapReduce Used on Large Geographic Data Sets
Location: Google Tech Talks June 23, 2007
Speaker: Barry Brumitt, Google Inc.
Abstract: MapReduce is a programming model and library designed to simplify distributed processing of huge datasets on large clusters of computers. This is achieved by providing a general mechanism which largely relieves the programmer from having to handle challenging distributed computing problems such as data distribution, process coordination, fault tolerance, and scaling. While working on Google maps, I’ve used MapReduce extensively to process and transform datasets which describe the earth’s geography. In this talk, I’ll introduce MapReduce, demonstrating its broad applicability through example problems ranging from basic data transformation to complex graph processing, all the in the context of geographic data.

Other than just the topic of MapReduce technique itself, this guy, Barry Brumitt, gives an hint of “how things work” in Google (developer wise). And it’s not boring at all: is actually quite funny.