Apache Flink vs Spark – Zal de een de ander inhalen?
Laatst bijgewerkt: 25 jan 2021
Apache Spark en Apache Flink zijn beide open-source, gedistribueerde verwerkingsframeworks die zijn gebouwd om de latentie van Hadoop Mapreduce bij snelle gegevensverwerking te verminderen. Er is een veel voorkomende misvatting dat Apache Flink Spark gaat vervangen of is het mogelijk dat deze beide big data-technologieën naast elkaar kunnen bestaan, waarbij ze vergelijkbare behoeften aan fouttolerante, snelle gegevensverwerking bedienen. Apache Spark en Flink lijken misschien op elkaar voor iemand die met geen van beide heeft gewerkt en alleen bekend is met Hadoop, en het ligt voor de hand dat zij zullen vinden dat de ontwikkeling van Apache Flink vooral overbodig is. Maar Flink is erin geslaagd om voorop te blijven in het spel vanwege zijn stream processing functie, die erin slaagt om rijen na rijen van gegevens in real time te verwerken – wat niet mogelijk is in Apache Spark’s batch-verwerkingsmethode. Dit maakt Flink sneller dan Spark.
Volgens deze IBM-studie creëren we elke dag ongeveer 2,5 quintiljoen bytes aan gegevens – en dit tempo van gegevensgeneratie blijft in een ongekend tempo toenemen. Om de zaken in een ander perspectief te plaatsen: ongeveer 90% van alle gegevens die in deze wereld bestaan, is in de laatste twee jaar gecreëerd, ook al is het World Wide Web al meer dan twee decennia toegankelijk voor het publiek. Naarmate het internet groeide, nam ook het aantal gebruikers toe en de alsmaar toenemende vraag naar inhoud effende het pad voor Web 2.0 in het afgelopen decennium. Het was de eerste keer dat gebruikers hun eigen gegevens op het internet mochten creëren en dat deze klaar waren om te worden geconsumeerd door een datahongerig publiek.
Toen was het de beurt aan de sociale media om ons leven binnen te dringen. Volgens het wersm (we are social media) rapport, krijgt Facebook meer dan 4 miljoen likes in een minuut! De gegevens die door andere populaire bronnen worden gegenereerd, worden in de infographic (afkomstig uit dezelfde wersm-studie) vermeld voordat we een blik werpen op de manier waarop deze gegevens worden geconsumeerd.
“Hoe sla je deze enorme hoeveelheden gegevens op?” was een probleemstelling die de techgeeks gedurende het grootste deel van het vorige decennium bezighield. De plotselinge opkomst van de sociale media maakte hun taken er niet eenvoudiger op. Nieuwetijdse opslagoplossingen zoals Cloud Computing hebben echter een revolutie in de industrie teweeggebracht en de best mogelijke oplossing gepresenteerd. In het huidige decennium is de probleemstelling verschoven naar “Wat te doen met grote brokken gegevens?” Data Analytics naar voren gekomen als het uiteindelijke doel, maar voordat dat, veel werk moet worden gedaan om gegevens die zijn opgeslagen in verschillende formaten op verschillende bronnen te integreren en voor te bereiden voor de verwerking en analyse, dat is een veeleisende taak.
Voor de volledige lijst van big data-bedrijven en hun salarissen- KLIK HIER
Onze twee onderwerpen voor vandaag – Apache Spark en Apache Flink – proberen die vraag en meer te beantwoorden.
Apache Spark
Spark is een open source, cluster computing framework dat een grote wereldwijde gebruikersbasis heeft. Het is geschreven in Scala, Java, R en Python en biedt programmeurs een Application Programming Interface (API) die is gebouwd op een fouttolerante, alleen-lezen multiset van gedistribueerde data-items. In een korte tijd van 2 jaar sinds de eerste release (mei 2014) heeft het een brede acceptatie gezien voor realtime, in-memory, geavanceerde analytics – vanwege de snelheid, het gebruiksgemak en de mogelijkheid om geavanceerde analytische vereisten aan te kunnen.
Als u meer informatie wilt over Big Data-carrières, klikt u op de oranje knop “Info aanvragen” bovenaan deze pagina.
Voordelen van Spark
Apache Spark heeft verschillende voordelen ten opzichte van traditionele Big Data- en MapReduce-gebaseerde technologieën. De belangrijkste zijn. Het tilt in wezen MapReduce naar een hoger niveau met een prestatie die verschillende keren sneller is. Een van de belangrijkste verschillen voor Spark is de mogelijkheid om tussentijdse resultaten zelf in het geheugen vast te houden, in plaats van terug te schrijven naar schijf en er weer uit te lezen, wat cruciaal is voor iteratie gebaseerde use cases.
- Snelheid – Spark kan batch processing jobs 10 tot 100 keer sneller uitvoeren dan MapReduce. Dat betekent niet dat het achterblijft wanneer gegevens naar schijf moeten worden geschreven (en van schijf worden opgehaald), want het is wereldrecordhouder voor grootschalige sortering op schijf.
- Gebruiksgemak – Apache Spark heeft eenvoudig te gebruiken API’s, gebouwd voor het werken met grote datasets.
- Unified Engine – Spark kan bovenop Hadoop draaien, gebruikmakend van de clustermanager (YARN) en onderliggende opslag (HDFS, HBase, enzovoort). Het kan echter ook onafhankelijk van Hadoop draaien en samenwerken met andere clustermanagers en opslagplatforms (zoals Cassandra en Amazon S3). Het komt ook met hogere – niveau bibliotheken die SQL queries data streaming, machine learning en graph processing.
- Kies uit Java, Scala of Python – Spark bindt je niet vast aan een bepaalde taal en laat je kiezen uit de populaire, zoals Java, Scala, Python, R en zelfs Clojure.
- In-memory data sharing – Verschillende jobs kunnen data delen binnen het geheugen, wat het een ideale keuze maakt voor iteratieve, interactieve en event stream processing taken.
- Actieve, groeiende gebruikersgemeenschap – Een actieve gebruikersgemeenschap heeft geleid tot een stabiele release van Spark (in juni, 2016) binnen 2 jaar na de eerste release. Dit spreekt boekdelen over zijn wereldwijde acceptatie, die in de lift zit.
Apache Flink
Duits voor ‘snel’ of ‘behendig’, Apache Flink is de nieuwste nieuwkomer in de lijst van open-source frameworks gericht op Big Data Analytics die proberen Hadoop’s verouderende MapReduce te vervangen, net als Spark. Flink kreeg zijn eerste API-stabiele versie vrijgegeven in maart 2016 en is gebouwd voor in-memory verwerking van batchgegevens, net als Spark. Dit model komt goed van pas wanneer herhaalde passes moeten worden gedaan op dezelfde gegevens. Dit maakt het een ideale kandidaat voor machine learning en andere use cases die adaptief leren, zelflerende netwerken, enz. vereisen. Met de onvermijdelijke boom van Internet of Things (IoT) ruimte, Flink gebruikersgemeenschap heeft een aantal spannende uitdagingen om naar uit te kijken.
Voordelen van Flink
- Werkelijke stream processing engine die batchverwerking kan benaderen, in plaats van andersom te zijn.
- Beter geheugenbeheer – Expliciet geheugenbeheer rekent af met de incidentele pieken die in Spark framework voorkomen.
- Snelheid – Het beheert hogere snelheden door iteratieve verwerking op dezelfde node te laten plaatsvinden in plaats van de cluster ze onafhankelijk van elkaar te laten uitvoeren. De prestaties kunnen verder worden afgestemd door het zo af te stellen dat alleen dat deel van de gegevens dat is veranderd, opnieuw wordt verwerkt in plaats van de hele set. Het biedt een tot vijfvoudige snelheidsverbetering in vergelijking met het standaard verwerkingsalgoritme.
- Minder configuratie
Apache Flink vs Spark
Tegen de tijd dat Flink op de markt kwam, was Apache Spark al het de facto raamwerk voor snelle, in-memory big data analytische eisen voor een aantal organisaties over de hele wereld. Hierdoor leek Flink overbodig. Immers, waarom zou men een andere data processing engine nodig hebben, terwijl de jury nog niet uit was over de bestaande? Men moet dieper graven in de mogelijkheden van Flink om te zien wat het onderscheidt, hoewel een aantal analisten het hebben geafficheerd als de “4G van Data Analytics”.
Diep ingebed in Spark’s instellingen is een kleine zwakte die Flink heeft gericht en probeert te kapitaliseren. Hoewel het waar is voor het doel van ongedwongen discussies, Spark is niet puur een stream-verwerking motor. Zoals opgemerkt door Ian Pointer in het InfoWorld artikel ‘Apache Flink: New Hadoop contender squares off against Spark’, is Spark in wezen een snelle batchbewerking die slechts op een klein deel van de inkomende gegevens tijdens een tijdseenheid werkt. Spark verwijst hiernaar als “micro batching” in zijn officiële documentatie. Dit probleem zal waarschijnlijk geen praktische betekenis hebben voor operaties, tenzij de use case een lage latency vereist (financiële systemen) waar vertraging in de orde van milliseconden een significante impact kan hebben. Dat gezegd hebbende, Flink is vrij veel een werk in uitvoering en kan geen aanspraak maken op Spark nog te vervangen.
Flink is een stream processing kader dat de taken die batch-verwerking kan uitvoeren, waardoor u de mogelijkheid om hetzelfde algoritme te gebruiken in beide modi, zonder dat u zich te wenden tot een technologie als Apache Storm die een lage latency response.
Zowel Spark en Flink ondersteunen in-memory processing, dat geeft hen duidelijk voordeel van de snelheid ten opzichte van andere frameworks. Als het gaat om real-time verwerking van inkomende gegevens, kan Flink het niet opnemen tegen Spark, hoewel het de mogelijkheid heeft om real-time verwerkingstaken uit te voeren.
Spark en Flink kunnen beide iteratieve, in het geheugen verwerking aan. Als het op snelheid aankomt, krijgt Flink de overhand omdat het kan worden geprogrammeerd om alleen de gegevens te verwerken die zijn gewijzigd, en dat is waar het boven Spark uitkomt.
Groeiverhalen – Spark en Flink
Elk softwareframework heeft meer nodig dan technische expertise om bedrijven te kunnen helpen de maximale waarde te ontlenen. In dit deel graven we in het Apache Spark 2015 Year in Review-artikel van Databricks om te zien hoe het Spark is vergaan in de wereldwijde gemeenschap van gebruikers en ontwikkelaars. Het jaar kende 4 releases (1.3 tot 1.6), elk met honderden fixes om het framework te verbeteren. Wat ons is opgevallen is de groei in het aantal bijdragende ontwikkelaars – van 500 in 2014 tot meer dan 1000 in 2015! Wat ook opvalt aan Spark is het gemak waarmee de gebruikers overstappen op de nieuwe versies. Het rapport vermeldt dat binnen drie maanden een meerderheid van de gebruikers overgaat op de nieuwste release. Deze feiten versterken zijn reputatie als de meest actief ontwikkelde (en geadopteerde) open source data tool.
Flink is relatief laat in de race, maar 2015 year in review op zijn officiële website laat zien waarom het hier is om te blijven als de meest complete open source stream processing frameworks beschikbaar. Flink’s github repository (Get the Repository – Here) laat zien dat de gemeenschap verdubbeld is in omvang in 2015 – van 75 bijdragers naar 150. Repository forks zijn meer dan verdrievoudigd in dat jaar en zo ook het aantal sterren van de repository. Begonnen vanuit Berlijn, Duitsland, heeft het zijn gebruikersgemeenschap zien groeien over continenten naar Noord-Amerika en Azië. De Flink Forward Conferentie was een andere mijlpaal voor Flink, die deelname zag van meer dan 250 deelnemers, waar meer dan 100 deelnemers van over de hele wereld reisden om technische lezingen bij te wonen van organisaties zoals Google, MongoDB, Telecom, NFLabs, RedHat, IBM, Huawei, Ericsson, Capital One, Amadeus en nog veel meer.
Hoewel het nog vroeg is om een van deze twee als duidelijke winnaar aan te wijzen, zijn we van mening dat in plaats van veel frameworks hetzelfde te laten doen, de tech-wereld er beter mee gediend zou zijn als nieuwkomers verschillende dingen zouden doen en de bestaande zouden aanvullen in plaats van ertegen te concurreren.
VORIGE |
NEXT |