Razlike med MapReduce in Apache Spark
Apache Hadoop je program z odprto kodo programske opreme, zasnovan za povečanje iz posameznih strežnikov na tisoče strojev in zagon aplikacij na grozdih strojne opreme. Okvir Apache Hadoop je razdeljen na dva sloja.
- Hadoop porazdeljeni datotečni sistem (HDFS)
- Obdelovalni sloj (MapReduce)
Shranjevalni sloj Hadoop, tj. HDFS je odgovoren za shranjevanje podatkov, medtem ko je MapReduce odgovoren za obdelavo podatkov v Hadoop Clusterju. MapReduce je ta programska paradigma, ki omogoča množično razširljivost na stotine ali tisoče strežnikov v grozdu Hadoop. MapReduce je tehnika obdelave in programski model za porazdeljeno računalništvo, ki temelji na programskem jeziku Java. MapReduce je močan okvir za obdelavo velikih, porazdeljenih nizov strukturiranih ali nestrukturiranih podatkov na grozdu Hadoop, shranjenega v distribucijskem datotečnem sistemu Hadoop (HDFS). Močne lastnosti MapReduce so njegova razširljivost.
- Apache Spark je sistem za računalništvo, ki je hiter in grozden, zasnovan za hitro računanje pri obsežni obdelavi podatkov. Apache Spark je sistem za distribucijo procesov, vendar ne vsebuje vgrajenega upravitelja virov grozdov in distribuiranega sistema za shranjevanje. Vključiti morate upravitelja grozdov in sistem za shranjevanje po vaši izbiri. Apache Spark je sestavljen iz jedra Spark in nabora knjižnic, podobnih tistim, ki so na voljo za Hadoop. Jedro je mehanizem porazdeljene izvedbe in nabor jezikov. Apache Spark podpira jezike, kot so Java, Scala, Python in R za razvoj distribuiranih aplikacij. Na vrhu jedre Spark so vgrajene dodatne knjižnice, ki omogočajo obremenitve, ki uporabljajo pretakanje, SQL, graf in strojno učenje. Apache Spark je motor za obdelavo podatkov za paketne in pretočne načine, ki vključuje poizvedbe SQL, obdelavo grafov in strojno učenje. Apache Spark lahko deluje samostojno in tudi na Hadoop YARN Cluster Manager in tako lahko prebere obstoječe podatke Hadoop.
- Za Apache Spark lahko izberete Apache YARN ali Mesos za upravitelja grozdov.
- Za upravitelja virov za Apache Spark lahko izberete Hadoop Distributed File System (HDFS), Google Cloud storage, Amazon S3, Microsoft Azure.
Primerjava med mestoma MapReduce in Apache Spark (Infographics)
Spodaj je zgornjih 20 primerjav med MapReduce in Apache Spark
Ključna razlika med MapReduce proti Apache Spark
- MapReduce temelji izključno na disku, medtem ko Apache Spark uporablja pomnilnik in lahko uporablja disk za obdelavo.
- MapReduce in Apache Spark imata podobno združljivost glede vrst podatkov in virov.
- Glavna razlika med MapReduce in Spark je v tem, da MapReduce uporablja obstojno shranjevanje, Spark pa uporablja prožne distribuirane nabore podatkov.
- Hadoop MapReduce je namenjen podatkom, ki ne ustrezajo pomnilniku, medtem ko ima Apache Spark boljše zmogljivosti za podatke, ki se prilegajo spominu, zlasti na namenskih grozdih.
- Hadoop MapReduce je zaradi Hadoopa kot storitve lahko ekonomična možnost, Apache Spark pa je stroškovno učinkovitejši zaradi pomnilnika visoke razpoložljivosti
- Apache Spark in Hadoop MapReduce sta odporen na odpoved, vendar je Hadoop MapReduce bolj odporen na odpoved kot Spark.
- Hadoop MapReduce zahteva temeljna znanja java programiranja, medtem ko je programiranje v Apache Spark enostavnejše, saj ima interaktivni način.
- Spark lahko izvaja naloge za paketno obdelavo med 10 do 100 krat hitreje kot MapReduce. Čeprav se obe orodji uporabljata za obdelavo velikih podatkov.
Kdaj uporabiti MapReduce:
- Linearna obdelava velikega nabora podatkov
- Vmesna rešitev ni potrebna
Kdaj uporabljati Apache Spark:
- Hitra in interaktivna obdelava podatkov
- Pridružitev naborom podatkov
- Obdelava grafov
- Iterativna delovna mesta
- Obdelava v realnem času
- Strojno učenje
Primerjalna tabela MapReduce vs Apache Spark
MapReduce | Apache iskrica | |
Obdelava podatkov | Samo za paketno obdelavo | Paketna obdelava in obdelava podatkov v realnem času |
Hitrost obdelave | Počasnejša kot pri Apache Spark, ker če je zamuda V / I na disku | 100x hitrejši pomnilnik in 10x hitrejši med tekom na disku |
Kategorija | Motor za obdelavo podatkov | Engine Analytics Engine |
Stroški | Manj dražji je primerjava Apache Spark | Bolj dražji zaradi velike količine RAM-a |
Prilagodljivost | Obe sta v posameznem grozdu omejeni na 1000 vozlišč | Obe sta v posameznem grozdu omejeni na 1000 vozlišč |
Strojno učenje | MapReduce je bolj združljiv s programom Apache Mahout, hkrati pa se povezuje s strojnim učenjem | Apache Spark ima vgrajene API-je za strojno učenje |
Kompatibilnost | Večinoma združljiv z vsemi viri podatkov in formati datotek | Apache Spark se lahko integrira z vsemi viri podatkov in formati datotek, ki jih podpira skupina Hadoop |
Varnost | Okvir MapReduce je v primerjavi z Apache Spark bolj varen | Varnostna funkcija v Apache Spark se bolj razvija in dozoreva |
Planer | Odvisno od zunanjega načrtovalca | Apache Spark ima svoj planer |
Toleranca napak | Za napako uporablja toleriranje | Apache Spark uporablja RDD in druge modele za shranjevanje podatkov za toleranco napak |
Enostavnost uporabe | MapReduce je nekoliko zapleten, če primerjamo Apache Spark zaradi JAVA API-jev | Apache Spark je zaradi bogatih API-jev enostavnejši za uporabo |
Podvojena odprava | MapReduce ne podpira te funkcije | Apache Spark obdela vsak zapis točno enkrat, torej odpravi podvajanje. |
Jezikovna podpora | Primarni jezik je Java, vendar so podprti tudi jeziki, kot so C, C ++, Ruby, Python, Perl, Groovy | Apache Spark podpira Java, Scala, Python in R |
Zamuda | Zelo visoka zakasnitev | Veliko hitrejša primerjava MapReduce Framework |
Kompleksnost | Kode težko pišejo in odpravljajo napake | Enostavno za pisanje in odpravljanje napak |
Skupnost Apache | Open Source Framework za obdelavo podatkov | Open Source Framework za večjo hitrost obdelave podatkov |
Kodiranje | Več vrstic kode | Manjše vrstice kodeksa |
Interaktivni način | Ni interaktivno | Interaktivni |
Infrastruktura | Blagovna oprema | Od srednje do visoke ravni strojne opreme |
SQL | Podpira prek Hive Query Language | Podpira prek Spark SQL |
Zaključek - MapReduce proti Apache Spark
MapReduce in Apache Spark sta najpomembnejše orodje za obdelavo velikih podatkov. Glavna prednost MapReduce je, da je obdelava podatkov na lestvici enostavna za več računalniških vozlišč, medtem ko Apache Spark ponuja visokohitrostno računalništvo, okretnost in relativno enostavno uporabo, ki so popolna dopolnitev MapReduce. MapReduce in Apache Spark imata med seboj simbiotski odnos. Hadoop ponuja funkcije, ki jih Spark nima, na primer porazdeljeni datotečni sistem, Spark pa nudi obdelavo v pomnilniku v realnem času za tiste nabore podatkov, ki to zahtevajo. MapReduce je diskovno računanje, medtem ko Apache Spark temelji na RAM-u. MapReduce in Apache Spark skupaj je močno orodje za obdelavo velikih podatkov in naredi Hadoop grozd bolj trden.
Priporočeni članki
To je vodnik za MapReduce vs Apache Spark, njihov pomen, primerjava med seboj, ključne razlike, primerjalna tabela in sklep. Če želite izvedeti več, si oglejte tudi naslednje članke -
- Azure Paas vs Iaas Koristne primerjave za učenje
- Najboljših 5 razlik med Hadoop proti MapReduce
- Morate vedeti o MapReduce vs Spark
- Apache Storm proti Apache Spark - Naučite se 15 uporabnih razlik
- Apache Hive vs Apache Spark SQL - 13 neverjetnih razlik
- Groovy Intervju Vprašanja: neverjetna vprašanja