Apache Flink vs. Spark – předběhne jeden druhého?

Poslední aktualizace: 25. ledna 2021

Apache Spark a Apache Flink jsou oba open source distribuované výpočetní rámce, které byly vytvořeny za účelem snížení latencí Hadoop Mapreduce při rychlém zpracování dat. Existuje rozšířená mylná představa, že Apache Flink nahradí Spark, nebo je možné, že obě tyto technologie pro zpracování velkých objemů dat mohou existovat vedle sebe, a sloužit tak podobným potřebám rychlého zpracování dat s odolností proti chybám. Někomu, kdo s žádnou z nich nepracoval a zná pouze Hadoop, se mohou Apache Spark a Flink zdát podobné a je zřejmé, že bude mít pocit, že vývoj Apache Flink je většinou zbytečný. Ale Flink si dokázal udržet náskok ve hře díky své funkci proudového zpracování, která dokáže zpracovávat řádky za řádky dat v reálném čase – což u dávkového způsobu zpracování Apache Spark není možné. Díky tomu je Flink rychlejší než Spark.

Podle této studie IBM vytváříme každý den přibližně 2,5 kvintilionu bajtů dat – a toto tempo generování dat se stále zvyšuje nebývalým tempem. Z jiného úhlu pohledu bylo asi 90 % všech dat, která na světě existují, vytvořeno v posledních dvou letech, přestože World Wide Web je veřejnosti přístupný již více než dvacet let. S rozvojem internetu rostl i počet uživatelů a stále rostoucí poptávka po obsahu připravila v posledním desetiletí půdu pro Web 2.0. Bylo to poprvé, kdy uživatelé mohli na internetu vytvářet svá vlastní data, která byla připravena ke konzumaci datuchtivým publikem.

Poté přišla řada na sociální média, která vtrhla do našich životů. Podle zprávy wersm (we are social media) získá Facebook za minutu více než 4 miliony lajků! O datech generovaných dalšími populárními zdroji se zmiňujeme v infografice (převzaté ze stejné studie wersm), než se podíváme na to, jak jsou tato data spotřebovávána.

Infografika s fakty a čísly o velkých datech

„Jak ukládat tato obrovská množství dat?“ bylo problémové tvrzení, které zaměstnávalo technické geeky po většinu minulého desetiletí. Náhlý nástup sociálních médií jim jejich úkoly nijak neusnadnil. Řešení pro ukládání dat nové doby, jako je například Cloud Computing, však způsobilo v tomto odvětví revoluci a představilo nejlepší možné řešení. V současném desetiletí se problémové zadání posunulo na „Co dělat s obrovskými kusy dat?“. Jako konečný cíl se objevila analýza dat, ale předtím je třeba vykonat spoustu práce na integraci dat uložených v různých formátech v různých zdrojích a připravit je ke zpracování a analýze, což je náročný úkol.

Pro kompletní seznam společností zabývajících se zpracováním velkých objemů dat a jejich platy- KLIKNĚTE ZDE

Naše dvě dnešní témata – Apache Spark a Apache Flink – se pokusí odpovědět nejen na tuto otázku.

Apache Spark vs Flink

Apache Spark

Spark je open source, clusterový výpočetní framework, který má velkou globální uživatelskou základnu. Je napsán v jazycích Scala, Java, R a Python a poskytuje programátorům rozhraní pro programování aplikací (API) postavené na vícenásobné množině distribuovaných datových položek odolných proti chybám a určených pouze pro čtení. Za krátkou dobu dvou let od svého prvního vydání (květen 2014) zaznamenal širokou přijatelnost pro pokročilou analytiku v reálném čase, in-memory – díky své rychlosti, snadnému použití a schopnosti zvládat sofistikované analytické požadavky.

Školení Spark online

Chcete-li získat více informací o kariéře v oblasti velkých dat, klikněte na oranžové tlačítko „Vyžádat si informace“ v horní části této stránky.

Výhody technologie Spark

Apache Spark má oproti tradičním technologiím založeným na Big Data a MapReduce několik výhod. Mezi ty nejvýznamnější patří. V podstatě posouvá MapReduce na vyšší úroveň s několikanásobně vyšším výkonem. Jednou z klíčových odlišností Sparku je jeho schopnost uchovávat mezivýsledky v samotné paměti namísto zápisu zpět na disk a opětovného čtení z něj, což je rozhodující pro případy použití založené na iteraci.

  • Rychlost – Spark dokáže provádět úlohy dávkového zpracování 10 až 100krát rychleji než MapReduce. To neznamená, že by zaostával, když je třeba data zapisovat na disk (a načítat z něj), protože je světovým rekordmanem v rozsáhlém třídění na disku.
  • Snadnost použití – Apache Spark má snadno použitelné rozhraní API, vytvořené pro práci s velkými soubory dat.
  • Jednotný engine – Spark může běžet nad Hadoopem, využívat jeho správce clusterů (YARN) a základní úložiště (HDFS, HBase atd.). Může však běžet i nezávisle na Hadoopu a spojit se s jinými správci clusterů a úložnými platformami (například Cassandra a Amazon S3). Dodává se také s knihovnami vyšší – úrovně, které podporují SQL dotazy streamování dat, strojové učení a zpracování grafů.
  • Vyberte si z Javy, Scaly nebo Pythonu – Spark vás neváže na konkrétní jazyk a umožňuje vám vybrat si z populárních jazyků, jako jsou Java, Scala, Python, R a dokonce Clojure.
  • Sdílení dat v paměti – Různé úlohy mohou sdílet data v paměti, což z něj činí ideální volbu pro iterativní, interaktivní úlohy a úlohy zpracování proudu událostí.
  • Aktivní, rozšiřující se komunita uživatelů – Aktivní komunita uživatelů vedla ke stabilnímu vydání Sparku (v červnu 2016) během dvou let od jeho prvního vydání. To vypovídá o jeho celosvětové přijatelnosti, která je na vzestupu.

Apache Flink

Apache Flink, německy „rychlý“ nebo „svižný“, je nejnovějším přírůstkem na seznamu open-source frameworků zaměřených na analýzu velkých dat, které se stejně jako Spark snaží nahradit stárnoucí MapReduce v systému Hadoop. Flink dostal svou první stabilní verzi API uvolněnou v březnu 2016 a je stejně jako Spark vytvořen pro zpracování dávkových dat v paměti. Tento model se velmi hodí, když je třeba provádět opakované průchody stejnými daty. To z něj činí ideálního kandidáta pro strojové učení a další případy použití, které vyžadují adaptivní učení, samoučící se sítě atd. S nevyhnutelným rozmachem oblasti internetu věcí (IoT) čeká komunitu uživatelů systému Flink několik zajímavých výzev.

Výhody systému Flink

  • Skutečný engine pro zpracování datových toků, který se může přiblížit dávkovému zpracování, spíše než aby tomu bylo naopak.
  • Lepší správa paměti – Explicitní správa paměti odstraňuje občasné výkyvy, které se vyskytují ve frameworku Spark.
  • Rychlost – Zvládá vyšší rychlost, protože umožňuje, aby iterační zpracování probíhalo na stejném uzlu, místo aby je cluster prováděl nezávisle. Jeho výkon lze dále vyladit vyladěním tak, aby znovu zpracovával pouze tu část dat, která se změnila, a ne celý soubor. Ve srovnání se standardním algoritmem zpracování nabízí až pětinásobné zvýšení rychlosti.
  • Méně konfigurace

Apache Flink vs Spark

V době, kdy přišel Flink, byl Apache Spark již de facto frameworkem pro rychlou analýzu velkých dat v paměti pro požadavky řady organizací po celém světě. Díky tomu se Flink jevil jako nadbytečný. Koneckonců, proč by někdo potřeboval další engine pro zpracování dat, když ten stávající byl ještě v porotě? Člověk musí hlouběji proniknout do schopností technologie Flink, aby vypozoroval, čím se odlišuje, ačkoli řada analytiků ji označila za „4G datové analýzy“.

Hluboko v nastavení Sparku je zakořeněna malá slabina, na kterou se Flink zaměřil a snaží se jí využít. Ačkoli to pro účely příležitostných diskusí platí, Spark není čistě engine pro zpracování datových toků. Jak poznamenal Ian Pointer v článku časopisu InfoWorld „Apache Flink: Spark je v podstatě rychlá dávková operace, která během časové jednotky pracuje pouze s malou částí příchozích dat. Spark to ve své oficiální dokumentaci označuje jako „mikro dávkování“. Tento problém pravděpodobně nebude mít žádný praktický význam pro operace, pokud případ použití nevyžaduje nízkou latenci (finanční systémy), kde zpoždění v řádu milisekund může mít významný dopad. Jak již bylo řečeno, Flink je do značné míry ve vývoji a zatím si nemůže dělat nárok na to, aby nahradil Spark.

Flink je framework pro zpracování datových toků, který může provádět úlohy vyžadující dávkové zpracování, což vám dává možnost používat stejný algoritmus v obou režimech, aniž byste se museli obracet na technologii jako Apache Storm, která vyžaduje odezvu s nízkou latencí.

Spark i Flink podporují zpracování v paměti, což jim dává výraznou výhodu rychlosti oproti jiným frameworkům. Pokud jde o zpracování příchozích dat v reálném čase, Flink proti Sparku neobstojí, i když má schopnost provádět úlohy zpracování v reálném čase.

Spark i Flink zvládají iterativní zpracování v paměti. Pokud jde o rychlost, má Flink navrch, protože jej lze naprogramovat tak, aby zpracovával pouze data, která se změnila, a v tom má nad Sparkem navrch.

Příběhy o růstu – Spark a Flink

Každý softwarový rámec potřebuje víc než jen technické znalosti, aby dokázal podnikům pomoci získat maximální hodnotu. V této části se ponoříme do článku Apache Spark 2015 Year in Review od společnosti Databricks a podíváme se, jak se mu dařilo v globální komunitě uživatelů a vývojářů. V tomto roce vyšly 4 verze (1.3 až 1.6), přičemž každá z nich obsahovala stovky oprav, které vylepšily framework. Co nás zaujalo, je nárůst počtu přispívajících vývojářů – z 500 v roce 2014 na více než 1000 v roce 2015! Další pozoruhodnou věcí na Sparku je snadnost, s jakou jeho uživatelé přecházejí na nové verze. Zpráva zmiňuje, že během tří měsíců si většina uživatelů osvojí nejnovější verzi. Tyto skutečnosti posilují jeho pověst nejaktivněji vyvíjeného (a adoptovaného) open source datového nástroje.

Flink se do závodu zapojil relativně pozdě, ale přehled roku 2015 na jeho oficiálních stránkách ukazuje, proč je zde, aby zůstal jako nejkomplexnější dostupný open source framework pro zpracování datových toků. Repozitář Flink na githubu (Get the Repository – Here) ukazuje, že komunita se v roce 2015 zdvojnásobila – ze 75 přispěvatelů na 150. Počet forků repozitáře se za rok více než ztrojnásobil, stejně jako počet hvězdiček repozitáře. Komunita uživatelů, která začínala v německém Berlíně, se rozrostla napříč kontinenty až do Severní Ameriky a Asie. Dalším milníkem pro Flink byla konference Flink Forward, která zaznamenala účast více než 250 účastníků, na kterou přijelo více než 100 účastníků z celého světa, aby se zúčastnili technických přednášek od organizací jako Google, MongoDB, Telecom, NFLabs, RedHat, IBM, Huawei, Ericsson, Capital One, Amadeus a mnoha dalších.

Ačkoli je ještě brzy na to, aby se jeden z nich stal jasným vítězem, jsme toho názoru, že místo toho, aby mnoho frameworků dělalo totéž, by technologickému světu lépe prospělo, kdyby noví účastníci dělali různé věci a doplňovali ty stávající, než aby jim konkurovali.

Apache Spark online školení

PŘEDCHOZÍ

NÁSLEDUJÍCÍ

.