Hadoop: The Mother of Distributed Computing
Last Wednesday, Eric Baldeschwieler, founding CEO and CTO of Hortonworks and lead architect of the Hadoop framework, talked about Hadoop and the history of its making. To start, he described Hadoop as a framework comprised of two parts: YARN, the computation layer where all deployed jobs get evaluated, and the HDFS, the Hadoop distributed file system. This dual architecture was meant to create a framework that was scalable (able to handle petabytes of data), reliable (resistant to component failure), flexible, and economical.
One of the greatest breakthroughs Hadoop provided was its ability to provide faster, more reliable data storage solutions, at a 100-times fraction of the price. The core insight was to use commodity computers instead of huge mainframes. It turned out that buying thousands of computers and organizing them into racks of servers was much more cost effective and faster than designing and maintaining complicated mainframe computers (although Eric did mention racks were potentially more power consuming; there are trade-offs to any kind of metric system). However, what the commodity-computer-approach gained in speed and cost, it lost to reliability. Any of the thousands of computers could fail at a time; even a 99% success rate means a 40% failure rate at 50 computers. Consequently, Hadoop was built from the ground up, taking for granted failures happened and architecting itself robustly against such failures. At the time Hadoop was introduced, most other competitors did not factor in reliability, which made Hadoop stand out even more.
When Eric lead the Yahoo! Team effort to take Hadoop from prototype to full fledged production software, he designed it to fulfill two main purposes. First, Hadoop was built to enable fast applications to crawl and index the web for the Yahoo! Search engine. It was built to sort and organize data, process, extract links and words, and fetch and store billions of web pages, and perform operations on all that data. And second, Hadoop was built to have monitoring at all levels. This would allow big companies like Yahoo! and later Facebook and Amazon to monitor everything in real time, react to failures/bugs, and provide personalized experiences (and targeted ads). What the Hadoop architecture essentially enabled was a way to offload some computational analysis away from the database, making all the information simpler and easier to scale.
While Hadoop may not seem as spectacular today as it did in the past thanks to new competitors like Apache Spark, Hadoop set a lot of important precedents, and remains incredibly relevant today. It is still being used for advanced computational analysis (think Machine Learning and advanced business analytics). Hadoop is also open-source, and like other open-source software, takes a guerilla-warfare approach to designing enterprise software, striving for optimal interactivity, speed, and ease for the web.

















