Apache Hadoop je soubor open-sourcových nástrojů, které mají za cíl zjednodušit použití sítě mnoha počítačů k řešení problémů, které zahrnují významné objemy dat a výpočtů. Nabízí softwarový Framework pro distribuované ukládání a zpracování big data za pomoci programovacího modelu MapReduce.
Původně byl navržen za účelem použití v oblasti klustrů postavených do komoditního hardware, což je stále jeden z obvyklých způsobů využití. Všechny moduly jsou postaveny s fundamentálním předpokladem, že dochází k hardwarovým výpadkům a Framework by tak měl být schopen tyto výpadky automaticky adresovat.
Jádro Apache Hadoop se skládá z úložné části, která je známá pod názvem Hadoop Distributed File System neboli HDFS a ze zpracovávající části, která vychází z programovacího modelu MapReduce. Hadoop rozděluje soubory do velkých bloků, které následně distribuuje napříč uzly v daném klustru. Nabalíčkovaný kód pak přenáší do jednotlivých uzlů tak, aby docházelo k paralelnímu zpracování dat.
To umožňuje, aby datová sada byla zpracovávaná rychleji a s vyšší efektivitou než by odpovídalo konvenční architektuře superpočítačů, která vychází z paralelních file systémů, kde jsou výpočty a data rozdistribuovaná za pomoci rychlé sítě.
Základ Apache Hadoop se skládá z následujících modulů:
Termín Hadoop se používá nejen na tyto moduly, ale zároveň na samotný ekosystém nebo soubor přídavných softwarových balíčků, které je možné instalovat nad rámec nebo spolu s Hadoopem. Mezi tyto další balíčky patří například Apache Pig, Apache Hive, Apache HBase, Apache Phoenix, Apache Spark, Apache ZooKeeper, Cloudera Impala, Apache Flume, Apache Sqoop, Apache Oozie nebo Apache Storm.
Hadoop Framework sám o sobě je napsán především v Javě, s tím, že části kódu jsou psané v C a nástroje přístrojové řádky jsou psány jako shell skripty.