The big-data environment at the moment is really “collaborative”. Each project is ready to run on almost every available platform and this is good. However, recently two factions are forming: people who use the Hadoop 2.0 Stack and people who use the BDAS.
Hadoop 2.0 Stack
The most important difference between Hadoop 2.0 and previous versions is YARN, the new cluster resource manager and next generation MapReduce. It can run almost every kind of big-data project:
- Traditional Map Reduce (new version is backward compatible) with Hive or Pig or Cascading for query.
- Interactive near real-time Map Reduce (using Tez)
- HBase and Accumulo
- Storm and S4 for stream processing
- Giraph for graph processing
- OpenMPI for message passing
- Spark as In-memory Map Reduce
- HDFS as distributed filesystem
Most interesting companies here are Intel, Cloudera, MapR and Hortonworks.
BDAS (Berkely Data Analytics Stack)
On the BDAS everything is built around Mesos: the cluster resource manager. It’a relative new project is already widely used. Traditional HDFS is accelerated by Tachyon (in-memory file system). The main integration is around Spark which is the base for:
Mesos can also run traditional Hadoop environment and other projects (such as Storm and OpenMPI). You can also run traditional applications (also Rails apps) using Marathon.
The most interesting companies here are Databricks and Mesosphere.
Who will win? 😀
Last summer I had the pleasure to review a really interesting book about Spark written by Holden Karau for PacktPub. She is a really smart woman currently software development engineer at Google, active in Spark‘s developers community. In the past she worked for Microsoft, Amazon and Foursquare.
Spark is a framework for writing fast, distributed programs. It’s similar to Hadoop MapReduce but uses fast in-memory approach. Spark ecosystem incorporates an inbuilt tools for interactive query analysis (Shark), a large-scale graph processing and analysis framework (Bagel), and real-time analysis framework (Spark Streaming). I discovered them a few months ago exploring the extended Hadoop ecosystem.
The book covers topics about how to write distributed map reduce style programs. You can find everything you need: setting up your Spark cluster, use the interactive shell and write and deploy distributed jobs in Scala, Java and Python. Last chapters look at how to use Hive with Spark to use a SQL-like query syntax with Shark, and manipulating resilient distributed datasets (RDDs).
Have fun reading it! 😀
Fast data processing with Spark
by Holden Karau
The title is also listed into Research Areas & Publications section of Google Research portal: http://research.google.com/pubs/pub41431.html