Apache Spark je open-source distribuovaný výpočtový framework na všeobecné použitie určený pre veľké dátové objemy. Vznikol ako alternatíva k existujúcim modelom, ale na rozdiel od nich, ukladá výsledky podúloh do pamäti, čím výrazne urýchľuje dokončenie úlohy.
Základy Apache Spark položil rumunsko-kanadský programátor Matei Zaharia v roku 2009 počas svojho pôsobenia v AMPLab na Kalifornskej univerzite v Berkeley. O rok neskôr bol zdrojový kód otvorený a okolo Apache Spark sa vytvorila široká komunita programátorov. V roku 2013 bol projekt presunutý pod Apache Software Foundation. V súčasnosti sa na údržbe a vývoji podieľa komunita stoviek programátorov zo stoviek rôznych organizácií.
Projekt začal ako výskum, ktorý sa sústredil na analýzu veľkých dát. Cieľom bolo vytvoriť programovací model, ktorý bude mať široké možnosti využitia a zároveň si zachová automatickú odolnosť voči chybám. Hlavným problémom dovtedy používaných frameworkov bola neefektívnosť v aplikáciách, ktoré prechádzajú dátami opakovane ako napríklad iteratívne algoritmy alebo interaktívne dolovanie dát, kedy sú dáta uložené v pamäti opakovane dopytované.
Nanešťastie, jediný spôsob ako uložiť medzivýsledky medzi úlohami bolo uložiť dáta na externé úložisko (napríklad distribuovaný súborový systém). Tento prístup výrazne predlžoval čas na dokončenie úlohy: disk IO, sieť IO, serializácia dát a pod.
Naproti tomu Apache Spark udržiava v sérií úloh dáta v pamäti. O tom ako to robí si povieme viac v ďalšom článku.