Programování

Pět věcí, které potřebujete vědět o Hadoop v. Apache Spark

Poslouchejte jakoukoli konverzaci o velkých datech a pravděpodobně uslyšíte zmínky o Hadoopu nebo Apache Sparku. Zde je krátký pohled na to, co dělají a jak porovnávají.

1: Dělají různé věci. Hadoop a Apache Spark jsou oba velké datové rámce, ale ve skutečnosti neslouží stejným účelům. Hadoop je v podstatě distribuovaná datová infrastruktura: Distribuuje masivní sběr dat mezi více uzlů v klastru komoditních serverů, což znamená, že nemusíte kupovat a udržovat drahý vlastní hardware. Rovněž indexuje a sleduje tato data, což umožňuje zpracování a analýzu velkých dat mnohem efektivněji, než bylo možné dříve. Spark je na druhé straně nástroj pro zpracování dat, který funguje na těchto distribuovaných sbírech dat; nedělá distribuované úložiště.

2: Můžete použít jeden bez druhého. Hadoop zahrnuje nejen úložnou komponentu, známou jako Hadoop Distributed File System, ale také zpracovatelskou komponentu nazvanou MapReduce, takže k dokončení zpracování nepotřebujete Spark. Naopak můžete použít i Spark bez Hadoopu. Spark nepřichází s vlastním systémem pro správu souborů, takže je třeba jej integrovat do jednoho - pokud ne HDFS, pak do jiné cloudové datové platformy. Spark byl navržen pro Hadoop, ale tolik lidí souhlasí, že je jim spolu lépe.

3: Spark je rychlejší. Spark je obecně mnohem rychlejší než MapReduce kvůli způsobu, jakým zpracovává data. Zatímco MapReduce pracuje v krocích, Spark pracuje na celé sadě dat jedním tahem. „Pracovní postup MapReduce vypadá takto: číst data z klastru, provádět operaci, zapisovat výsledky do klastru, číst aktualizovaná data z klastru, provádět další operace, zapisovat další výsledky do klastru atd.,“ Vysvětlil Kirk Borne, principal data scientist ve společnosti Booz Allen Hamilton. Spark na druhou stranu dokončuje veškeré operace s analýzou dat v paměti a téměř v reálném čase: „Čtěte data z klastru, proveďte všechny potřebné analytické operace, zapisujte výsledky do klastru, hotovo,“ řekl Borne. Spark může být až 10krát rychlejší než MapReduce pro dávkové zpracování a až 100krát rychlejší pro analýzu v paměti, řekl.

4: Možná nebudete potřebovat Sparkovu rychlost. Styl zpracování MapReduce může být v pohodě, pokud jsou vaše operace s daty a požadavky na hlášení většinou statické a můžete počkat na dávkové zpracování. Pokud ale potřebujete provádět analýzu streamovaných dat, například ze senzorů v továrně, nebo máte aplikace, které vyžadují více operací, pravděpodobně budete chtít použít Spark. Většina algoritmů strojového učení například vyžaduje více operací. Mezi běžné aplikace pro Spark patří marketingové kampaně v reálném čase, online doporučení produktů, analýza kybernetické bezpečnosti a monitorování protokolů strojů.

5: Zotavení po selhání: jiné, ale přesto dobré. Hadoop je přirozeně odolný vůči systémovým chybám nebo selháním, protože data se po každé operaci zapisují na disk, ale Spark má podobnou integrovanou odolnost díky skutečnosti, že jeho datové objekty jsou uloženy v něčem, co se nazývá odolné distribuované datové sady distribuované napříč datovým klastrem. „Tyto datové objekty mohou být uloženy v paměti nebo na discích a RDD zajišťuje úplné zotavení z poruch nebo poruch,“ zdůraznil Borne.