Apache Flink vs Spark – Vil den ene overhale den anden?

Sidst opdateret: 25 jan 2021

Apache Spark og Apache Flink er begge open source, distribueret behandlingsramme, som blev bygget for at reducere latenserne i Hadoop Mapreduce i hurtig databehandling. Der er en udbredt misforståelse om, at Apache Flink vil erstatte Spark, eller er det muligt, at begge disse big data-teknologier kan eksistere side om side og dermed opfylde lignende behov for fejltolerant, hurtig databehandling. Apache Spark og Flink kan virke ens for en person, der ikke har arbejdet med nogen af disse og kun er bekendt med Hadoop, og det er klart, at vedkommende vil føle, at udviklingen af Apache Flink mest af alt er overflødig. Men Flink har formået at holde sig foran i spillet på grund af sin stream processing-funktion, som formår at behandle rækker efter rækker af data i realtid – hvilket ikke er muligt i Apache Spark’s batch processing-metode. Dette gør Flink hurtigere end Spark.

I henhold til denne IBM-undersøgelse skaber vi ca. 2,5 kvilliarder bytes data hver dag – og denne hastighed af datagenerering fortsætter med at stige i et hidtil uset tempo. For at sætte tingene i et andet perspektiv er ca. 90 % af alle data, der findes i verden, blevet skabt inden for de sidste to år, selv om World Wide Web har været tilgængeligt for offentligheden i mere end to årtier. I takt med at internettet voksede, voksede også antallet af brugere, og den stadigt stigende efterspørgsel efter indhold banede vejen for Web 2.0 i det sidste årti. Det var første gang, at brugerne fik lov til at skabe deres egne data på internettet, og de var klar til at blive konsumeret af et datahungrende publikum.

Derpå var det de sociale mediers tur til at invadere vores liv. Ifølge wersm-rapporten (we are social media) får Facebook mere end 4 millioner likes på et minut! De data, der genereres af andre populære kilder, er nævnt i infografikken (taget fra samme wersm-undersøgelse), inden vi ser på, hvordan disse data forbruges.

Big Data Facts and Figures Infographic

“Hvordan lagrer man disse enorme datamængder?” var en problemstilling, der holdt tech-nørderne beskæftiget i det meste af det foregående årti. Den pludselige fremkomst af sociale medier gjorde deres opgaver ikke lettere. Men den nye tids lagringsløsninger som f.eks. cloud computing har revolutioneret branchen og præsenteret den bedst mulige løsning. I det nuværende årti er problemformuleringen blevet ændret til “Hvad skal man gøre med store datamængder?” Dataanalyse er blevet det ultimative mål, men før det sker, skal der gøres et stort arbejde for at integrere data, der er lagret i forskellige formater i forskellige kilder, og forberede dem til behandling og analyse, hvilket er en krævende opgave.

For den komplette liste over big data-virksomheder og deres lønninger- KLIK HER

Vores to emner for i dag – Apache Spark og Apache Flink – forsøger at besvare dette spørgsmål og meget mere.

Apache Spark vs Flink

Apache Spark

Spark er et open source, cluster computing framework, som har en stor global brugerbase. Det er skrevet i Scala, Java, R og Python og giver programmører en API (Application Programming Interface), der er bygget på et fejltolerant, læsebeskyttet multisæt af distribuerede dataelementer. På kort tid, 2 år siden den første udgivelse (maj 2014), har den oplevet bred accept til realtids-, in-memory, avancerede analyser – på grund af dens hastighed, brugervenlighed og evne til at håndtere sofistikerede analytiske krav.

Apache Spark Training Online

Hvis du ønsker flere oplysninger om Big Data-karrierer, skal du klikke på den orange “Request Info”-knap øverst på denne side.

Fordelene ved Spark

Apache Spark har flere fordele i forhold til traditionelle Big Data- og MapReduce-baserede teknologier. De fremtrædende er. Den tager i det væsentlige MapReduce til det næste niveau med en ydeevne, der er flere gange hurtigere. En af de vigtigste differentiatorer for Spark er dens evne til at holde mellemresultater i selve hukommelsen i stedet for at skrive tilbage til disken og læse fra den igen, hvilket er afgørende for iterationsbaserede anvendelsestilfælde.

  • Hastighed – Spark kan udføre batchbehandlingsopgaver 10 til 100 gange hurtigere end MapReduce. Det betyder ikke, at den halter bagefter, når data skal skrives til (og hentes fra) disk, da den er verdensrekordholder i storskala on-disk-sortering.
  • Brugervenlighed – Apache Sparkhar brugervenlige API’er, der er bygget til at operere på store datasæt.
  • Unified Engine – Spark kan køre oven på Hadoop, idet den gør brug af dens cluster manager (YARN) og underliggende storage (HDFS, HBase osv.). Den kan dog også køre uafhængigt af Hadoop og gå sammen med andre klyngeadministratorer og lagringsplatforme (f.eks. Cassandra og Amazon S3). Den leveres også med biblioteker på højere niveau, der understøtter SQL-forespørgsler, datastreaming, maskinlæring og grafbehandling.
  • Vælg mellem Java, Scala eller Python – Spark binder dig ikke til et bestemt sprog og lader dig vælge mellem de populære sprog som Java, Scala, Python, R og endda Clojure.
  • In-memory datadeling – Forskellige jobs kan dele data i hukommelsen, hvilket gør det til et ideelt valg til iterative, interaktive og event stream processing-opgaver.
  • Aktivt, voksende brugerfællesskab – Et aktivt brugerfællesskab har ført til en stabil udgave af Spark (i juni 2016) inden for 2 år efter den første udgivelse. Det taler sit tydelige sprog om dens verdensomspændende accept, som er stigende.

Apache Flink

Tysk for “hurtig” eller “adræt”, Apache Flink er den seneste nyhed på listen over open source-rammer med fokus på Big Data Analytics, der ligesom Spark forsøger at erstatte Hadoops aldrende MapReduce. Flink fik sin første API-stable version frigivet i marts 2016 og er bygget til in-memory-behandling af batchdata, ligesom Spark. Denne model er virkelig praktisk, når der skal laves gentagne gennemløb på de samme data. Dette gør den til en ideel kandidat til maskinlæring og andre use cases, der kræver adaptiv læring, selvlærende netværk osv. Med det uundgåelige boom inden for IoT-området (Internet of Things) har Flink-brugerfællesskabet nogle spændende udfordringer at se frem til.

Fordele ved Flink

  • Faktisk stream processing-motor, der kan tilnærme sig batchbehandling, i stedet for at være omvendt.
  • Bedre hukommelsesstyring – Eksplicit hukommelsesstyring slipper for de lejlighedsvise spikes, der findes i Spark-rammen.
  • Hastighed – Den administrerer højere hastigheder ved at tillade iterativ behandling at finde sted på den samme knude i stedet for at lade klyngen køre dem uafhængigt af hinanden. Dens ydeevne kan justeres yderligere ved at justere den til kun at genbehandle den del af data, der er ændret, i stedet for hele sættet. Det giver op til fem gange højere hastighed sammenlignet med standardbehandlingsalgoritmen.
  • Mindre konfiguration

Apache Flink vs Spark

Da Flink kom frem, var Apache Spark allerede de facto rammen for hurtige, in-memory big data-analysekrav til en række organisationer verden over. Dette fik Flink til at virke overflødig. Hvorfor skulle man trods alt have brug for endnu en databehandlingsmotor, mens juryen stadig var ude om den eksisterende? Man er nødt til at grave dybere ned i Flinks muligheder for at observere, hvad der adskiller den fra andre, selv om en række analytikere har udråbt den til “4G of Data Analytics”.

Dybt indlejret i Spark’s indstillinger er der en lille svaghed, som Flink har målrettet og forsøger at udnytte. Selv om det står sandt i forbindelse med afslappede diskussioner, er Spark ikke udelukkende en stream-processing-motor. Som Ian Pointer observerede i InfoWorld-artiklen “Apache Flink: New Hadoop contender squares off against Spark”, er Spark i bund og grund en hurtig batch-operation, som kun arbejder på en lille del af de indkommende data i løbet af en tidsenhed. Spark omtaler dette som “micro batching” i sin officielle dokumentation. Det er usandsynligt, at dette problem vil have nogen praktisk betydning for driften, medmindre anvendelsesområdet kræver lav latenstid (finansielle systemer), hvor forsinkelser i størrelsesordenen millisekunder kan have en betydelig indvirkning. Når det er sagt, er Flink temmelig meget et arbejde under udvikling og kan ikke gøre krav på at erstatte Spark endnu.

Flink er en stream processing-ramme, der kan køre de opgaver, der kræver batchbehandling, hvilket giver dig mulighed for at bruge den samme algoritme i begge tilstande, uden at du behøver at henvende dig til en teknologi som Apache Storm, der kræver respons med lav latenstid.

Både Spark og Flink understøtter in-memory-behandling, hvilket giver dem en klar fordel i forhold til andre rammer med hensyn til hastighed. Når det gælder realtidsbehandling af indgående data, står Flink ikke op imod Spark, selv om den har mulighed for at udføre realtidsbehandlingsopgaver.

Spark og Flink kan begge håndtere iterativ, in memory-behandling. Når det kommer til hastighed, får Flink overtaget, da den kan programmeres til kun at behandle de data, der er ændret, og det er her, den kommer ud over Spark.

Væksthistorier – Spark og Flink

Alle softwarerammer har brug for mere end teknisk ekspertise for at kunne hjælpe virksomheder med at få den maksimale værdi ud af det. I dette afsnit graver vi ned i artiklen Apache Spark 2015 Year in Review fra Databricks for at se, hvordan det er gået i det globale fællesskab af brugere og udviklere. Året bød på 4 udgivelser (1.3 til 1.6), hver med hundredvis af rettelser til forbedring af rammen. Det, der har fanget vores opmærksomhed, er væksten i antallet af bidragende udviklere – fra 500 i 2014 til over 1000 i 2015! En anden bemærkelsesværdig ting ved Spark er den lethed, hvormed brugerne overgår til de nye versioner. Rapporten nævner, at inden for tre måneder overgår størstedelen af brugerne til den nyeste version. Disse kendsgerninger styrker dens ry som det mest aktivt udviklede (og adopterede) open source-dataværktøj.

Flink er kommet relativt sent ind i løbet, men 2015-årsoversigten på dens officielle websted viser, hvorfor den er kommet for at blive som det mest komplette open source-stream processing-rammeværk, der findes. Flinks github-repository (Get the Repository – Her) viser, at fællesskabet blev fordoblet i størrelse i 2015 – fra 75 bidragydere til 150. Repository-forks blev mere end tredoblet i løbet af året, og det samme gjorde antallet af stjerner i repositoryet. Med udgangspunkt i Berlin, Tyskland, har det set sit brugerfællesskab vokse på tværs af kontinenterne til Nordamerika og Asien. Flink Forward Conference var en anden milepæl for Flink, som oplevede deltagelse fra over 250 deltagere, hvor mere end 100 deltagere rejste fra hele verden for at overvære tekniske foredrag fra organisationer som Google, MongoDB, Telecom, NFLabs, RedHat, IBM, Huawei, Ericsson, Capital One, Amadeus og mange flere.

Men selv om det stadig er tidligt at udpege en af disse to som en klar vinder, er vi af den opfattelse, at i stedet for at have mange frameworks, der gør det samme, ville tech-verdenen være bedre tjent med at få nye deltagere til at gøre forskellige ting og supplere de eksisterende frem for at konkurrere mod dem.

Apache Spark Online Training

PREVIOUS

NEXT