Apache Flink vs Spark – Megelőzi-e az egyik a másikat?
Legutóbb frissítve:
Apache Spark és az Apache Flink mindkettő nyílt forráskódú, elosztott feldolgozási keretrendszer, amely a Hadoop Mapreduce késleltetésének csökkentésére készült a gyors adatfeldolgozásban. Gyakori tévhit, hogy az Apache Flink felváltja a Sparkot, vagy lehetséges, hogy mindkét big data technológia ca n egymás mellett létezik, és ezáltal hasonló igényeket szolgál ki a hibatűrő, gyors adatfeldolgozásra. Az Apache Spark és a Flink hasonlónak tűnhet annak, aki még nem dolgozott egyikükkel sem, és csak a Hadoopot ismeri, és nyilvánvaló, hogy az Apache Flink fejlesztését többnyire feleslegesnek fogja érezni. A Flinknek azonban a stream-feldolgozási funkciója miatt sikerült az élmezőnyben maradnia, amely valós időben képes feldolgozni sorok sorát az adatokból – ami az Apache Spark kötegelt feldolgozási módszerével nem lehetséges. Ez teszi a Flinket gyorsabbá a Sparknál.
Az IBM ezen tanulmánya szerint naponta körülbelül 2,5 kvintillió bájtnyi adatot hozunk létre – és ez az adatgenerálási sebesség továbbra is soha nem látott ütemben növekszik. Hogy más perspektívába helyezzük a dolgokat, a világon létező összes adat mintegy 90%-a az elmúlt két évben jött létre, annak ellenére, hogy a világháló már jóval több mint két évtizede elérhető a nyilvánosság számára. Ahogy nőtt az internet, úgy nőtt a felhasználók száma is, és a tartalom iránti egyre növekvő igény az elmúlt évtizedben megnyitotta az utat a Web 2.0 előtt. Ez volt az első alkalom, hogy a felhasználók létrehozhatták saját adataikat az interneten, és ezek készen álltak arra, hogy az adatéhes közönség fogyassza őket.
Aztán a közösségi médián volt a sor, hogy betörjön az életünkbe. A wersm (we are social media) jelentése szerint a Facebook egy perc alatt több mint 4 millió like-ot kap! A többi népszerű forrás által generált adatokat is megemlíti az infografika (ugyanebből a wersm tanulmányból), mielőtt megnéznénk, hogyan fogyasztják ezeket az adatokat.
“Hogyan tároljuk ezeket a hatalmas mennyiségű adatokat?” – ez volt az a problémafelvetés, amely az előző évtized nagy részében foglalkoztatta a tech geekeket. A közösségi média hirtelen felemelkedése nem könnyítette meg a feladataikat. Az újkori tárolási megoldások, például a felhőalapú számítástechnika azonban forradalmasította az iparágat, és a lehető legjobb megoldást mutatta be. A jelenlegi évtizedben a problémafelvetés a következőre változott: “Mit kezdjünk a hatalmas adathalmazokkal?”. Végső célként az adatelemzés jelent meg, de előtte még rengeteg munkát kell végezni a különböző forrásokban, különböző formátumokban tárolt adatok integrálásával, valamint feldolgozásra és elemzésre való előkészítésével, ami igényes feladat.
A big data vállalatok és fizetéseik teljes listájáért- KATTINTSON IDE
M mai két témánk – Apache Spark és Apache Flink – erre a kérdésre és még többre is megpróbál választ adni.
Apache Spark
A Spark egy nyílt forráskódú, fürtszámítási keretrendszer, amely nagy globális felhasználói bázissal rendelkezik. Scala, Java, R és Python nyelven íródott, és a programozóknak egy olyan alkalmazásprogramozási felületet (API) biztosít, amely egy hibatűrő, csak olvasható, elosztott adatelemekből álló multisetre épül. A kezdeti megjelenése (2014. május) óta eltelt rövid idő alatt (2 év) széleskörű elfogadottságot nyert a valós idejű, memórián belüli, fejlett analitika területén – a sebességének, egyszerű használatának és a kifinomult analitikai követelmények kezelésére való képességének köszönhetően.
Ha további információkat szeretne a Big Data karrierről, kattintson az oldal tetején található narancssárga “Információ kérése” gombra.
A Spark előnyei
Apache Spark számos előnnyel rendelkezik a hagyományos Big Data és MapReduce alapú technológiákkal szemben. A kiemelkedőek a következők. Lényegében a MapReduce-t viszi a következő szintre a többszörösen gyorsabb teljesítményével. A Spark egyik legfontosabb megkülönböztető jegye, hogy a köztes eredményeket maga is képes memóriában tartani, ahelyett, hogy visszaírná a lemezre és újra kiolvasná onnan, ami kritikus fontosságú az iteráción alapuló felhasználási esetekben.
- Sebesség – A Spark 10-100-szor gyorsabban képes végrehajtani a kötegelt feldolgozási feladatokat, mint a MapReduce. Ez nem jelenti azt, hogy akkor is lemarad, amikor az adatokat lemezre kell írni (és onnan lekérni), hiszen a nagyméretű lemezen történő rendezés világrekordere.
- Könnyű használat – Az Apache Spark könnyen használható API-kkal rendelkezik, amelyek a nagy adathalmazokon való működéshez készültek.
- Egységes motor – A Spark a Hadoop tetején futhat, kihasználva annak fürtkezelőjét (YARN) és a mögöttes tárolókat (HDFS, HBase stb.). Ugyanakkor a Hadooptól függetlenül is futhat, más fürtkezelőkkel és tárolási platformokkal (például a Cassandra és az Amazon S3) összefogva. Magasabb szintű könyvtárakkal is rendelkezik, amelyek támogatják az SQL-lekérdezések adatfolyamát, a gépi tanulást és a gráffeldolgozást.
- Válasszon Java, Scala vagy Python közül – A Spark nem köti magát egy adott nyelvhez, és lehetővé teszi, hogy a népszerű nyelvek közül válasszon, mint például a Java, Scala, Python, R vagy akár a Clojure.
- Memórián belüli adatmegosztás – A különböző feladatok megoszthatják az adatokat a memórián belül, ami ideális választássá teszi az iteratív, interaktív és eseményfolyam-feldolgozási feladatokhoz.
- Aktív, bővülő felhasználói közösség – Az aktív felhasználói közösségnek köszönhetően a Spark stabil kiadása (2016 júniusában) már 2 évvel a kezdeti megjelenés után elkészült. Ez sokat elmond a világszerte növekvő elfogadottságáról.
Apache Flink
A németül ‘gyors’ vagy ‘fürge’ jelentésű Apache Flink a legújabb belépő a Big Data Analyticsre összpontosító nyílt forráskódú keretrendszerek listáján, amelyek a Sparkhoz hasonlóan a Hadoop kiöregedő MapReduce-ját próbálják leváltani. A Flink 2016 márciusában kapta meg első API-stabil verzióját, amely 2016 márciusában jelent meg, és a Sparkhoz hasonlóan kötegelt adatok memórián belüli feldolgozására készült. Ez a modell akkor jön igazán jól, ha ugyanazokon az adatokon többszöri átfutást kell végezni. Ezáltal ideális jelölt a gépi tanuláshoz és más olyan felhasználási esetekhez, amelyek adaptív tanulást, öntanuló hálózatokat stb. igényelnek. Az Internet of Things (IoT) tér elkerülhetetlen fellendülésével a Flink felhasználói közössége izgalmas kihívások elé néz.
A Flink előnyei
- Valódi folyamfeldolgozó motor, amely képes megközelíteni a kötegelt feldolgozást, és nem fordítva.
- Jobb memóriakezelés – Az explicit memóriakezelés megszabadít a Spark keretrendszerben előforduló alkalmi tüskéktől.
- Sebesség – Gyorsabb sebességet kezel azáltal, hogy az iteratív feldolgozást ugyanazon a csomóponton teszi lehetővé, ahelyett, hogy a klaszter egymástól függetlenül futtatná őket. Teljesítménye tovább hangolható azáltal, hogy úgy állítjuk be, hogy az adatoknak csak azt a részét dolgozza fel újra, amelyik megváltozott, nem pedig a teljes halmazt. A szabványos feldolgozási algoritmushoz képest akár ötszörös sebességnövekedést kínál.
- Kisebb konfiguráció
Apache Flink vs Spark
A Flink megjelenésekor az Apache Spark már a gyors, memórián belüli nagy adatelemzési követelmények de facto keretrendszere volt számos szervezet számára világszerte. Emiatt a Flink feleslegesnek tűnt. Végtére is, miért lenne szükség egy újabb adatfeldolgozó motorra, amikor a meglévőre még mindig nem volt meg a zsűri? Mélyebben bele kell ásni a Flink képességeibe, hogy megfigyeljük, mi különbözteti meg, bár számos elemző az “adatelemzés 4G-jeként” harangozta be.
Mélyen a Spark beállításaiba ágyazva van egy kis gyengeség, amelyet a Flink megcélzott és megpróbál kihasználni. Bár az alkalmi beszélgetések céljára igaz, a Spark nem tisztán folyamfeldolgozó motor. Ahogy azt Ian Pointer az InfoWorld ‘Apache Flink: New Hadoop contender squares off against Spark’, a Spark lényegében egy gyors kötegelt művelet, amely egy időegység alatt a beérkező adatoknak csak egy kis részén dolgozik. A Spark hivatalos dokumentációjában ezt “micro batching”-nek nevezi. Ennek a kérdésnek valószínűleg nincs gyakorlati jelentősége a műveletekre, kivéve, ha a felhasználási eset alacsony késleltetést igényel (pénzügyi rendszerek), ahol az ezredmásodperc nagyságrendű késleltetés jelentős hatást gyakorolhat. Mindezek mellett a Flink nagyjából még fejlesztés alatt áll, és egyelőre nem tarthat igényt arra, hogy felváltja a Sparkot.
A Flink egy folyamfeldolgozó keretrendszer, amely képes a kötegelt feldolgozást igénylő feladatok elvégzésére, lehetőséget ad arra, hogy ugyanazt az algoritmust használjuk mindkét üzemmódban, anélkül, hogy olyan technológiához kellene fordulnunk, mint az Apache Storm, amely alacsony késleltetésű választ igényel.
A Spark és a Flink is támogatja a memórián belüli feldolgozást, ami egyértelmű sebességelőnyt jelent más keretrendszerekkel szemben. Ha a beérkező adatok valós idejű feldolgozásáról van szó, a Flink nem állja meg a helyét a Sparkkal szemben, bár képes valós idejű feldolgozási feladatok elvégzésére.
A Spark és a Flink egyaránt képes az iteratív, memórián belüli feldolgozásra. Ha a sebességről van szó, a Flink kerül fölénybe, mivel úgy programozható, hogy csak a megváltozott adatokat dolgozza fel, amiben a Sparkkal szemben előnybe kerül.
Növekedési történetek – Spark és Flink
Minden szoftverkeretnek többre van szüksége a technikai szakértelemnél ahhoz, hogy a vállalkozások számára a lehető legnagyobb értéket tudja nyújtani. Ebben a részben a Databricks Apache Spark 2015 Year in Review cikkébe ássuk bele magunkat, hogy megnézzük, hogyan teljesített a Spark a felhasználók és fejlesztők globális közösségében. Az év során 4 kiadás jelent meg (1.3-tól 1.6-ig), mindegyik több száz, a keretrendszert javító javítást tartalmazott. Ami szemet szúrt nekünk, az a hozzájáruló fejlesztők számának növekedése – a 2014-es 500-ról 2015-ben több mint 1000-re nőtt! A másik feltűnő dolog a Sparkkal kapcsolatban az, hogy a felhasználók milyen könnyen átállnak az új verziókra. A jelentés megemlíti, hogy három hónapon belül a felhasználók többsége átáll a legújabb kiadásra. Ezek a tények erősítik a Spark hírnevét, mint a legaktívabban fejlesztett (és elfogadott) nyílt forráskódú adatfeldolgozó eszköz.
A Flink viszonylag későn szállt be a versenybe, de a hivatalos weboldalán található 2015-ös évértékelés megmutatja, miért van itt, hogy a legteljesebb nyílt forráskódú folyamfeldolgozó keretrendszerek között maradjon. A Flink github-tárháza (Get the Repository – Here) azt mutatja, hogy a közösség mérete 2015-ben megduplázódott – 75 közreműködőről 150-re. A repozitórium elágazásai több mint megháromszorozódtak az év során, ahogy a repozitórium csillagainak száma is. A németországi Berlinből indult, de felhasználói közössége a kontinenseken át Észak-Amerikáig és Ázsiáig nőtt. A Flink Forward konferencia egy újabb mérföldkő volt a Flink számára, amelyen több mint 250-en vettek részt, és amelyre több mint 100 résztvevő utazott a világ minden tájáról, hogy részt vegyen olyan szervezetek technikai előadásain, mint a Google, MongoDB, Telecom, NFLabs, RedHat, IBM, Huawei, Ericsson, Capital One, Amadeus és még sokan mások.
Bár még korai lenne egyértelmű győztesként kiemelni a kettő közül egyet, mi azon a véleményen vagyunk, hogy ahelyett, hogy sok keretrendszer ugyanazt csinálja, a technológiai világ jobban járna, ha az új belépők különböző dolgokat csinálnának, és inkább kiegészítenék a meglévőket, mintsem versenyeznének velük.
előző |
következő |