Razlika med MapReduce in Spark

Map Reduce je odprtokodni okvir za pisanje podatkov v HDFS in obdelavo strukturiranih in nestrukturiranih podatkov, ki so prisotni v HDFS. Zmanjšanje zemljevidov je omejeno na paketno obdelavo, na drugih Sparkih pa lahko izvajajo katero koli vrsto obdelave. SPARK je neodvisen procesor za obdelavo v realnem času, ki ga je mogoče namestiti v kateri koli sistem distribuirane datoteke, kot je Hadoop. SPARK zagotavlja zmogljivost, ki je 10-krat hitrejša od zmanjšanja zemljevidov na disku in 100-krat hitrejša od zmanjšanja zemljevidov v omrežju v pomnilniku.

Need for SPARK

  • Iterative Analytics: Zmanjšanje zemljevidov ni tako učinkovito kot SPARK za reševanje težav, ki zahtevajo iterativno analitiko, saj mora iti na disk za vsako ponovitev.
  • Interaktivna analitika: Zmanjšanje zemljevidov se pogosto uporablja za izvajanje ad-hoc poizvedb, za katere mora priti do diskovnega pomnilnika, ki spet ni tako učinkovit kot SPARK, ker se slednji sklicuje v pomnilnik, ki je hitrejši.
  • Ni primerno za OLTP: Ker deluje na paketno naravnanem okviru, ni primeren za veliko število kratkih transakcij.
  • Ni primerno za graf: Knjižnica Apache Graph obdeluje graf, ki doda večjo zapletenost zmanjšanju zemljevidov.
  • Ni primerno za trivialne operacije: Pri operacijah, kot je filter in združuje, bomo morda morali prepisati opravila, ki postanejo bolj zapletena zaradi vzorca ključ-vrednost.

Primerjava med mestoma MapReduce proti Spark (Infographics)

Spodaj je zgornjih 15 razlik med MapReduce in Spark

Ključne razlike med MapReduce proti Spark

Spodaj so seznami točk, opišite ključne razlike med MapReduce in Spark:

  • Spark je primeren za sprotni čas, ko obdeluje spomin, medtem ko je MapReduce omejen na paketno obdelavo.
  • Spark ima RDD (Resilient Distributed Dataset), ki nam omogoča operaterje na visoki ravni, vendar v zmanjšanju Map moramo kodirati vsako operacijo, kar otežuje primerjavo.
  • Spark lahko obdeluje grafe in podpira orodje Strojno učenje.
  • Spodaj je razlika med ekosistemom MapReduce in Spark.

Primer, kjer je MapReduce proti Spark primeren, je naslednji

Iskra: odkrivanje goljufij s kreditno kartico

MapReduce: Pripravljanje rednih poročil, ki zahtevajo odločanje.

Tabela primerjave MapReduce proti iskri

Osnova za primerjavoMapReduceIskra
OkvirOdprt okvir za pisanje podatkov v HDFS in obdelavo strukturiranih in nestrukturiranih podatkov, ki so prisotni v HDFS.Odprt okvir za hitrejšo in splošno rabo podatkov
HitrostMap-Reduce procesiranje podatkov (branje in pisanje) z diska, tako da je iskalnik počasen v primerjavi z iskrico.

Spark je vsaj 10X hitrejši na disku in 100X hitrejši v pomnilniku kot kartica Map Reduce.
TežavnostVsak postopek moramo kodirati / obdelati.Z razpoložljivostjo RDD (Resilient Distributed Dataset) je enostavno programiranje.
V realnem časuNi primerno za transakcije OLTP samo za paketni načinLahko prenese obdelavo v realnem času. Uporaba pretoka SPARK.
ZamudaOkvir računalniškega zakasnitve na visoki ravniRačunalniški okvir z nizko stopnjo zakasnitve.
Toleranca napakGlavni demoni preverijo srčni utrip demonov sužnjev in v primeru, da demoni suženj ne uspejo, glavni demoni prestaviti vse čakajoče in tekoče delovanje na drugega sužnja.RDD-ji zagotavljajo odstopanje napak do sistema SPARK. Nanašajo se na niz podatkov, ki je prisoten v zunanji shrambi (HDFS, HBase) in delujejo vzporedno.
PlanerV programu Map Reduce uporabljamo zunanji planer, kot je Oozie.Medtem ko SPARK deluje z računalništvom v pomnilniku, deluje kot lasten razporejevalec.
CenaZmanjšanje zemljevida je v primerjavi s sistemom SPARK razmeroma cenejše.Ker deluje v pomnilniku, zato potrebuje veliko RAM-a, zato je sorazmerno dražji.
Platforma, razvita naprejMap Reduce je razvit s pomočjo Jave.SPARK je bil razvit z uporabo Scale.
Podprt jezikMap Reduce v osnovi podpira C, C ++, Ruby, Groovy, Perl, Python.Spark podpira Scala, Java, Python, R, SQL.
Podpora za SQLMap Reduce izvaja poizvedbe z jezikom poizvedb.Spark ima svoj poizvedbeni jezik, znan kot Spark SQL.
PrilagodljivostV zmanjšanju zemljevida lahko dodamo do n število vozlišč. Največji grozd Hadoop ima 14000 vozlišč.Tudi v Spark lahko dodamo n število vozlišč. Največji skupin Spark ima 8000 vozlišč.
Strojno učenjeMap Reduce podpira orodje Apache Mahout za strojno učenje.Spark podpira MLlib orodje za strojno učenje.
PredvajanjeZmanjšanje zemljevidov ne more predpomniti pomnilniških podatkov, zato ni tako hitro kot v primerjavi s Sparkom.Spark shrani podatke v pomnilniku za nadaljnje iteracije, tako da je zelo hiter v primerjavi z zmanjšanjem zemljevida.
VarnostMap Reduce podpira več varnostnih projektov in funkcij v primerjavi s SparkVarnost iskric še ni zrela kot varnost zmanjšanja zemljevidov

Zaključek - MapReduce proti Spark

Glede na zgornjo razliko med MapReduce in Spark je povsem jasno, da je SPARK v primerjavi z Map Reduce bistveno naprednejši računalniški motor. Spark je združljiv s katero koli obliko zapisa datoteke in je tudi precej hitrejši od zmanjšanja zemljevidov. Iskra ima poleg tega tudi obdelavo grafi in zmogljivosti strojnega učenja.

Po eni strani je zmanjšanje zemljevidov omejeno na paketno obdelavo, na drugi pa je Spark sposoben izvesti katero koli vrsto obdelave (paketna, interaktivna, iterativna, pretočna grafika). Zaradi velike združljivosti je Spark najljubši Data Scientist in zato nadomešča Map Zmanjšaj in hitro raste. Še vedno pa moramo podatke shraniti v HDFS in tudi kdaj bomo morda potrebovali HBase. Zato moramo zagnati tako Spark kot Hadoop, da dosežemo najboljše.

Priporočeni članki:

To je vodnik za MapReduce vs Spark, njihov pomen, primerjava med seboj, ključne razlike, tabela primerjave in sklep. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. 7 pomembnih stvari o Apache Spark (vodnik)
  2. Hadoop proti Apache Spark - zanimive stvari, ki jih morate vedeti
  3. Apache Hadoop in Apache Spark | Top 10 primerjav, ki jih moraš vedeti!
  4. Kako deluje MapReduce?
  5. Sotočje tehnologije in poslovne analitike

Kategorija: