Apache Flink vs Spark – Se va depăși unul pe celălalt?

Ultima actualizare: 25 ian 2021

Apache Spark și Apache Flink sunt ambele un cadru de procesare distribuită, cu sursă deschisă, care a fost construit pentru a reduce latențele Hadoop Mapreduce în procesarea rapidă a datelor. Există o concepție greșită comună conform căreia Apache Flink va înlocui Spark sau este posibil ca aceste două tehnologii big data să poată coexista, servind astfel nevoilor similare de procesare rapidă și tolerantă la erori a datelor. Apache Spark și Flink pot părea similare pentru cineva care nu a lucrat cu niciuna dintre acestea și este familiarizat doar cu Hadoop, și este evident că acesta va considera că dezvoltarea Apache Flink este în mare parte superfluă. Dar Flink a reușit să rămână în frunte în joc datorită funcției sale de procesare în flux, care reușește să proceseze rânduri peste rânduri de date în timp real – ceea ce nu este posibil în metoda de procesare pe loturi a Apache Spark. Acest lucru face ca Flink să fie mai rapid decât Spark.

Conform acestui studiu IBM, creăm aproximativ 2,5 quintilioane de octeți de date în fiecare zi – iar această rată de generare a datelor continuă să crească într-un ritm fără precedent. Pentru a pune lucrurile într-o altă perspectivă, aproximativ 90% din toate datele existente în această lume, au fost create în ultimii doi ani, chiar dacă World Wide Web a fost accesibil publicului de mai bine de două decenii. Pe măsură ce internetul a crescut, a crescut și numărul de utilizatori, iar cererea tot mai mare de conținut a deschis calea către Web 2.0 în ultimul deceniu. A fost pentru prima dată când utilizatorilor li s-a permis să își creeze propriile date pe internet și acestea erau gata să fie consumate de un public avid de date.

Apoi a fost rândul social media să ne invadeze viețile. Conform raportului wersm (we are social media), Facebook primește peste 4 milioane de like-uri într-un minut! Datele generate de alte surse populare sunt menționate în infografic (preluate din același studiu wersm) înainte de a arunca o privire asupra modului în care aceste date sunt consumate.

Infograficul Big Data Facts and Figures

„Cum să stocăm aceste cantități enorme de date?” a fost un enunț de problemă care i-a ținut ocupați pe tocilarii din domeniul tehnologiei în cea mai mare parte a deceniului precedent. Apariția bruscă a social media nu le-a ușurat deloc sarcinile. Cu toate acestea, soluțiile de stocare din noua eră, cum ar fi Cloud Computing, au revoluționat industria și au prezentat cea mai bună soluție posibilă. În actualul deceniu, problema s-a mutat la „Ce să facem cu bucăți uriașe de date?”. Analiza datelor a apărut ca fiind obiectivul final, dar, înainte de aceasta, trebuie depuse multe eforturi pentru a integra datele stocate în diferite formate din diferite surse și pentru a le pregăti pentru procesare și analiză, ceea ce reprezintă o sarcină solicitantă.

Pentru lista completă a companiilor de big data și salariile acestora- CLICK AICI

Cele două subiecte ale noastre de astăzi – Apache Spark și Apache Flink – încearcă să răspundă la această întrebare și nu numai.

Apache Spark vs Flink

Apache Spark

Spark este un cadru de calcul în cluster, cu sursă deschisă, care are o bază mare de utilizatori la nivel global. Este scris în Scala, Java, R și Python și oferă programatorilor o interfață de programare a aplicațiilor (API) construită pe un set multiplu de elemente de date distribuite, tolerante la erori și numai pentru citire. Într-un timp scurt de 2 ani de la lansarea sa inițială (mai 2014), a cunoscut o largă acceptabilitate pentru analize avansate în timp real, în memorie – datorită vitezei, ușurinței de utilizare și capacității de a gestiona cerințe analitice sofisticate.

Apache Spark Training Online

Dacă doriți mai multe informații despre carierele Big Data, vă rugăm să faceți clic pe butonul portocaliu „Request Info” din partea de sus a acestei pagini.

Avantajele Spark

Apache Spark are mai multe avantaje față de tehnologiile tradiționale bazate pe Big Data și MapReduce. Cele proeminente sunt. În esență, duce MapReduce la nivelul următor, cu o performanță de câteva ori mai rapidă. Unul dintre diferențiatorii cheie pentru Spark este capacitatea sa de a păstra rezultatele intermediare chiar în memorie, mai degrabă decât să scrie înapoi pe disc și să citească din nou de pe acesta, ceea ce este esențial pentru cazurile de utilizare bazate pe iterații.

  • Viteză – Spark poate executa sarcini de procesare pe loturi de 10 până la 100 de ori mai rapid decât MapReduce. Acest lucru nu înseamnă că rămâne în urmă atunci când datele trebuie să fie scrise pe (și preluate de pe) disc, deoarece este deținătorul recordului mondial pentru sortarea pe scară largă pe disc.
  • Ușurința de utilizare – Apache Spark are API-uri ușor de utilizat, construite pentru operarea pe seturi mari de date.
  • Motor unificat – Spark poate rula peste Hadoop, utilizând managerul de clustere (YARN) și stocarea subiacentă (HDFS, HBase, etc.). Cu toate acestea, poate rula, de asemenea, independent de Hadoop, dându-și mâna cu alți manageri de clustere și platforme de stocare (precum Cassandra și Amazon S3). De asemenea, vine cu biblioteci de nivel superior care acceptă interogări SQL, streaming de date, învățare automată și procesare grafică.
  • Alegeți dintre Java, Scala sau Python – Spark nu vă leagă de un anumit limbaj și vă permite să alegeți dintre cele mai populare, cum ar fi Java, Scala, Python, R și chiar Clojure.
  • Partajare de date în memorie – Diferite sarcini pot partaja date în cadrul memoriei, ceea ce o face o alegere ideală pentru sarcinile iterative, interactive și de procesare a fluxurilor de evenimente.
  • Comunitate de utilizatori activă și în expansiune – O comunitate de utilizatori activă a dus la o versiune stabilă a Spark (în iunie 2016) în termen de 2 ani de la lansarea sa inițială. Acest lucru spune multe despre acceptabilitatea sa la nivel mondial, care este în creștere.

Apache Flink

În germană pentru „rapid” sau „agil”, Apache Flink este ultimul venit pe lista cadrelor open-source axate pe analiza datelor mari, care încearcă să înlocuiască, la fel ca Spark, vechiul MapReduce de la Hadoop. Flink a primit prima versiune stabilă API lansată în martie 2016 și este construit pentru procesarea în memorie a datelor pe loturi, la fel ca Spark. Acest model este foarte util atunci când trebuie să se facă treceri repetate pe aceleași date. Acest lucru îl face un candidat ideal pentru învățarea automată și alte cazuri de utilizare care necesită învățare adaptivă, rețele de autoînvățare etc. Odată cu boom-ul inevitabil al spațiului Internet of Things (IoT), comunitatea de utilizatori Flink așteaptă cu nerăbdare câteva provocări interesante.

Avantajele lui Flink

  • Motor de procesare în flux real care poate aproxima procesarea pe loturi, mai degrabă decât să fie invers.
  • O mai bună gestionare a memoriei – Gestionarea explicită a memoriei scapă de vârfurile ocazionale întâlnite în cadrul Spark.
  • Viteză – Gestionează viteze mai mari permițând ca procesarea iterativă să aibă loc pe același nod, în loc ca clusterul să le ruleze independent. Performanța sa poate fi reglată în continuare prin reglarea sa pentru a reprelucra doar acea parte a datelor care s-a modificat, mai degrabă decât întregul set. Oferă o creștere de până la cinci ori a vitezei în comparație cu algoritmul standard de procesare.
  • Mai puțină configurare

Apache Flink vs Spark

Până la apariția lui Flink, Apache Spark era deja cadrul de facto pentru cerințele de analiză rapidă și în memorie a datelor mari pentru o serie de organizații din întreaga lume. Acest lucru a făcut ca Flink să pară superfluu. La urma urmei, de ce ar fi avut cineva nevoie de un alt motor de procesare a datelor, în timp ce juriul încă nu se pronunțase asupra celui existent? Trebuie să săpăm mai adânc în capacitățile lui Flink pentru a observa ce îl diferențiază, deși o serie de analiști l-au catalogat drept „4G-ul analizei de date”.

Principal încorporat în setările lui Spark este o mică slăbiciune pe care Flink a vizat-o și pe care încearcă să o valorifice. Deși este adevărat în scopul discuțiilor ocazionale, Spark nu este pur și simplu un motor de procesare a fluxurilor. După cum a observat Ian Pointer în articolul din InfoWorld „Apache Flink: New Hadoop contender squares off against Spark”, Spark este, în esență, o operațiune rapidă pe loturi care lucrează doar pe o mică parte din datele primite în timpul unei unități de timp. Spark se referă la acest lucru drept „micro batching” în documentația sa oficială. Este puțin probabil ca această problemă să aibă vreo semnificație practică asupra operațiunilor, cu excepția cazului în care cazul de utilizare necesită o latență redusă (sisteme financiare), unde o întârziere de ordinul milisecundelor poate avea un impact semnificativ. Acestea fiind spuse, Flink este destul de mult o lucrare în curs de desfășurare și nu poate emite pretenția de a înlocui Spark încă.

Flink este un cadru de procesare a fluxurilor care poate executa sarcinile care necesită procesare pe loturi, oferindu-vă opțiunea de a utiliza același algoritm în ambele moduri, fără a fi nevoie să apelați la o tehnologie precum Apache Storm, care necesită un răspuns cu latență redusă.

Atât Spark, cât și Flink acceptă procesarea în memorie, ceea ce le oferă un avantaj distinct de viteză față de alte cadre. Când vine vorba de procesarea în timp real a datelor primite, Flink nu face față lui Spark, deși are capacitatea de a efectua sarcini de procesare în timp real.

Atât Spark cât și Flink pot gestiona procesarea iterativă, în memorie. Când vine vorba de viteză, Flink primește avantajul, deoarece poate fi programat să proceseze doar datele care s-au schimbat, și aici iese în avantaj față de Spark.

Povești de creștere – Spark și Flink

Care cadru software are nevoie de mai mult decât de expertiză tehnică pentru a putea ajuta întreprinderile să obțină valoarea maximă. În această secțiune, aprofundăm articolul Apache Spark 2015 Year in Review de la Databricks pentru a vedea cum s-a descurcat în comunitatea globală de utilizatori și dezvoltatori. Anul a fost marcat de 4 versiuni (de la 1.3 la 1.6), fiecare dintre ele cu sute de corecții pentru a îmbunătăți cadrul. Ceea ce ne-a atras atenția este creșterea numărului de dezvoltatori contribuitori – de la 500 în 2014 la peste 1000 în 2015! Un alt lucru notabil la Spark este ușurința cu care utilizatorii săi trec la noile versiuni. Raportul menționează că, în decurs de trei luni, majoritatea utilizatorilor adoptă cea mai recentă versiune. Aceste fapte îi sporesc reputația de cel mai activ instrument de date open source dezvoltat (și adoptat).

Flink a intrat relativ târziu în cursă, dar bilanțul anului 2015 de pe site-ul său oficial arată de ce este aici pentru a rămâne ca fiind cel mai complet cadru de procesare a fluxurilor open source disponibil. Depozitul github al lui Flink (Get the Repository – aici) arată că dimensiunea comunității s-a dublat în 2015 – de la 75 de contribuitori la 150. Furcile din depozit s-au mai mult decât triplat în acest an, la fel și numărul de stele ale depozitului. Pornind de la Berlin, Germania, și-a văzut comunitatea de utilizatori crescând pe toate continentele, până în America de Nord și Asia. Conferința Flink Forward a fost o altă piatră de hotar pentru Flink, la care au participat peste 250 de persoane, unde peste 100 de participanți au călătorit din întreaga lume pentru a asista la discuții tehnice din partea unor organizații precum Google, MongoDB, Telecom, NFLabs, RedHat, IBM, Huawei, Ericsson, Capital One, Amadeus și multe altele.

Deși este încă devreme pentru a desemna unul dintre aceste două ca fiind un câștigător clar, suntem de părere că, în loc să avem multe cadre care fac același lucru, lumea tehnologiei ar fi mai bine servită dacă noii participanți ar face lucruri diferite și le-ar completa pe cele existente, în loc să le concureze.

Apache Spark Online Training

PREVIOUS

NEXT

.