# Apache Hadoop

Apache Hadoop is een open source softwareframework voor gedistribueerde opslag en verwerking van grote hoeveelheden data met behulp van het MapReduce paradigma. Hadoop is als platform een drijvende kracht achter de populariteit van big data. Het draait op een cluster van computers dat bestaat uit commodity hardware. In het ontwerp van de Hadoop-softwarecomponenten is rekening gehouden met uitval van systemen in een cluster, door o.a. data te repliceren en te verspreiden over meerdere computers/opslagmedia.

## Modules

Hadoop bestaat in de basis uit de volgende modules:
* Hadoop Common - een verzameling softwarebibliotheken die door de overige modules gebruikt worden;
* Hadoop Distributed File System (HDFS) - het gedistribueerde bestandssysteem dat bestanden gedistribueerd over de systemen in het cluster opslaat;
* Hadoop YARN (sinds versie 2.0) - de resource manager die beschikbare systeembronnen toewijst aan de applicaties die op Hadoop draaien;
* Hadoop MapReduce - een implementatie van het MapReduce-paradigma voor het op grote schaal verwerken van data.

## Applicaties

Naast deze basismodules is er een groot aantal applicaties ontwikkeld voor gebruik in of op Hadoop. Veelgebruikte applicaties zijn Apache Hive, Apache Pig, Apache HBase, Apache Phoenix, Apache Spark, Apache Flume, Apache Oozie, Apache Zookeeper, Apache Sqoop en Apache Storm. Met de naam Hadoop wordt daarom vaak niet alleen het framework, maar het hele ecosysteem van applicaties rondom het framework bedoeld.

## Geschiedenis
### Google

In oktober 2003 publiceerde Google een artikel over Google File System, een schaalbaar en gedistribueerd bestandssysteem voor gebruik in data-intensieve applicaties. Doug Cutting, de ontwikkelaar achter Apache Lucene, en Mike Cafarella, waren op dat moment bezig met hun open-source webcrawler Apache Nutch en zochten een oplossing om de grote datasets die zij met Nutch creëerden te kunnen verwerken. Op basis van het artikel van Google implementeerden zij in 2004 het Google File System in Java onder de naam Nutch Distributed File System.
Voor het kunnen verwerken van de data op NDFS zochten Cutting en Cafarella naar een oplossing die net zo schaalbaar moest zijn als het bestandssysteem zelf. Ook hiervoor kwamen ze uit bij Google. Het softwarebedrijf publiceerde in 2004 een artikel over MapReduce. Cutting en Cafarella implementeerden het MapReduce-principe in Nutch.

### Yahoo!

In 2006 begon Cutting aan Hadoop, als subproject van Lucene. Hij bracht het gedistribueerde bestandssysteem, hernoemd naar HDFS, en MapReduce van Nutch onder in dit nieuwe project. Hij wekte hiermee de interesse van Yahoo!, dat met hun in C++ ontwikkelde search backend tegen problemen aanliep. Yahoo! nam Cutting in dienst om de overstap te maken naar Hadoop. Vanaf 2007 begonnen meer bedrijven gebruik te maken van Hadoop. Bedrijven als Twitter, Facebook en LinkedIn namen Hadoop serieus en ontwikkelden hun eigen software rondom het platform. Zo ontstond er een open-source ecosysteem.

### 2008 en verder

In 2008 groeide Hadoop uit van een subproject van Lucene tot een top-level Apache-project. Verschillende open-sourceprojecten rondom het Hadoop-framework verschenen in deze tijd, waaronder NoSQL-database Apache HBase, Facebook's Apache Hive en Yahoo's Apache Pig. Ook werd Cloudera opgericht, het eerste bedrijf dat een distributie van Hadoop op commerciële basis aanbood.
* Wat is Hadoop? Computerworld
* ↑ release 1.0.0 available. Geraadpleegd op 27 januari 2020.
* ↑ https://archive.apache.org/dist/hadoop/common/hadoop-1.0.0/; geraadpleegd op: 27 januari 2020.
* ↑ Release 1.0.0 (27 december 2011). Geraadpleegd op 8 augustus 2020.
* ↑ Big data booming, fueled by Hadoop and NoSQL adoption, TechRepublic, 16 september 2016. Gearchiveerd op 30 januari 2021.
* ↑ The Google File System, Google, oktober 2003. Gearchiveerd op 2 december 2017.
* ↑ The history of Hadoop, Medium.com. Gearchiveerd op 17 februari 2021.
* ↑ MapReduce: Simplified Data Processing on Large Clusters, Google, december 2004. Gearchiveerd op 2 december 2017.