Rozdiely medzi MapReduce a Apache Spark
Apache Hadoop je softvérový rámec s otvoreným zdrojovým kódom určený na zväčšenie počtu jednotlivých serverov na tisíce počítačov a spúšťanie aplikácií na klastroch komoditného hardvéru. Rámec Apache Hadoop je rozdelený do dvoch vrstiev.
- Distribuovaný systém súborov Hadoop (HDFS)
- Spracovateľská vrstva (MapReduce)
Úložná vrstva Hadoop tj HDFS je zodpovedná za ukladanie údajov, zatiaľ čo MapReduce je zodpovedný za spracovanie údajov v Hadoop Cluster. MapReduce je toto programovacie paradigma, ktoré umožňuje masívnu škálovateľnosť na stovkách alebo tisícoch serverov v klastri Hadoop. MapReduce je technika spracovania a programový model pre distribuované výpočty založené na programovacom jazyku Java. MapReduce je výkonný rámec pre spracovanie veľkých, distribuovaných množín štruktúrovaných alebo neštruktúrovaných údajov v klastri Hadoop uložených v systéme Hadoop Distributed File System (HDFS). Výkonné vlastnosti MapReduce sú jeho škálovateľnosť.
- Apache Spark je technologický a rýchly klasterový technologický rámec navrhnutý pre rýchly výpočet veľkého rozsahu spracovania dát. Apache Spark je distribuovaný procesor, ale neprichádza so zabudovaným správcom klastrových prostriedkov a distribuovaným úložným systémom. Musíte pripojiť správcu klastrov a úložný systém podľa vášho výberu. Apache Spark pozostáva z jadra Spark a zo súboru knižníc podobných tým, ktoré sú dostupné pre Hadoop. Jadrom je distribuovaný spúšťací mechanizmus a sada jazykov. Apache Spark podporuje jazyky ako Java, Scala, Python a R pre vývoj distribuovaných aplikácií. Ďalšie knižnice sú postavené na jadre jadra Spark, ktoré umožňujú pracovné zaťaženie, ktoré využíva streaming, SQL, graf a strojové učenie. Apache Spark je nástroj na spracovanie údajov pre dávkové a streamingové režimy s otázkami SQL, spracovaním grafov a strojovým učením. Apache Spark môže pracovať nezávisle a tiež na Hadoop YARN Cluster Manager, a tak môže čítať existujúce Hadoop dáta.
- Môžete si vybrať Apache YARN alebo Mesos pre manažéra klastrov pre Apache Spark.
- Môžete si vybrať Hadoop Distributed File System (HDFS), cloudové úložisko Google, Amazon S3, Microsoft Azure pre manažéra zdrojov pre Apache Spark.
Porovnanie medzi hlavami medzi MapReduce a Apache Spark (infografika)
Nižšie je 20 najlepších porovnaní medzi MapReduce a Apache Spark
Kľúčový rozdiel medzi MapReduce a Apache Spark
- MapReduce je založený výhradne na diskoch, zatiaľ čo Apache Spark využíva pamäť a môže použiť disk na spracovanie.
- MapReduce a Apache Spark majú podobnú kompatibilitu, pokiaľ ide o typy údajov a zdroje údajov.
- Primárny rozdiel medzi MapReduce a Spark je v tom, že MapReduce používa trvalé úložisko a Spark používa Resilient Distributed Datasets.
- Hadoop MapReduce je určený pre údaje, ktoré sa nezmestia do pamäte, zatiaľ čo Apache Spark má lepší výkon pre údaje, ktoré sa zmestia do pamäte, najmä na vyhradených klastroch.
- Hadoop MapReduce môže byť ekonomickou alternatívou kvôli Hadoop ako službe a Apache Spark je nákladovo efektívnejší kvôli vysokej dostupnosti pamäte
- Apache Spark a Hadoop MapReduce sú odolné voči poruchám, ale porovnateľne je Hadoop MapReduce odolnejší voči poruchám ako Spark.
- Hadoop MapReduce vyžaduje základné programovacie schopnosti Java, zatiaľ čo programovanie v Apache Spark je jednoduchšie, pretože má interaktívny režim.
- Spark dokáže vykonávať dávkové spracovanie 10 až 100-krát rýchlejšie ako MapReduce, hoci oba nástroje sa používajú na spracovanie veľkých dát.
Kedy používať MapReduce:
- Lineárne spracovanie veľkého súboru údajov
- Nie je potrebné žiadne prechodné riešenie
Kedy používať Apache Spark:
- Rýchle a interaktívne spracovanie údajov
- Pripája sa k súborom údajov
- Spracovanie grafov
- Iteračné zamestnania
- Spracovanie v reálnom čase
- Strojové učenie
Porovnávacia tabuľka MapReduce verzus Apache Spark
MapReduce | Apache Spark | |
Spracovanie dát | Iba pre dávkové spracovanie | Dávkové spracovanie, ako aj spracovanie údajov v reálnom čase |
Rýchlosť spracovania | Pomalší ako Apache Spark, pretože ak je latencia I / O disku | 100x rýchlejšie v pamäti a 10x rýchlejšie pri spustení na disku |
kategórie | Spracovateľ údajov | Nástroj na analýzu údajov |
náklady | Lacnejšie v porovnaní s Apache Spark | Viac nákladnejšie z dôvodu veľkého množstva pamäte RAM |
škálovateľnosť | Obidva sú škálovateľné obmedzené na 1 000 uzlov v jednom klastri | Obidva sú škálovateľné obmedzené na 1 000 uzlov v jednom klastri |
Strojové učenie | MapReduce je kompatibilnejší s Apache Mahout pri integrácii s Machine Learning | Apache Spark má zabudované API pre Machine Learning |
kompatibilita | Je kompatibilný so všetkými zdrojmi údajov a formátmi súborov | Apache Spark sa môže integrovať do všetkých zdrojov údajov a formátov súborov podporovaných klastrom Hadoop |
zabezpečenia | Framework MapReduce je v porovnaní s Apache Spark bezpečnejší | Bezpečnostná funkcia v Apache Spark sa vyvíja a dozrieva |
Scheduler | Závisí od externého plánovača | Apache Spark má vlastný plánovač |
Odolnosť proti chybám | Používa replikáciu pre toleranciu chyby | Apache Spark používa RDD a ďalšie modely na ukladanie dát pre odolnosť proti poruchám |
Jednoduchosť použitia | MapReduce je trochu zložité porovnávať Apache Spark z dôvodu JAVA API | Apache Spark sa ľahšie používa kvôli bohatým API |
Duplicitné odstránenie | MapReduce túto funkciu nepodporuje | Apache Spark spracováva každý záznam presne raz, čím eliminuje duplikáciu. |
Jazyková podpora | Primárny jazyk je Java, ale podporované sú aj jazyky ako C, C ++, Ruby, Python, Perl, Groovy | Apache Spark podporuje Java, Scala, Python a R |
latencia | Veľmi vysoká latencia | Oveľa rýchlejšie porovnávanie MapReduce Framework |
zložitosť | Je ťažké písať a ladiť kódy | Jednoduché písanie a ladenie |
Komunita Apache | Open Source Framework na spracovanie údajov | Open Source Framework pre spracovanie dát pri vyššej rýchlosti |
kódovanie | Viac riadkov kódu | Menšie riadky kódu |
Interaktívny režim | Neaktívne | interaktívne |
infraštruktúra | Komoditný hardvér | Hardvér strednej a vyššej úrovne |
SQL | Podporuje prostredníctvom jazyka Hive Query Language | Podporuje Spark SQL |
Záver - MapReduce vs Apache Spark
MapReduce a Apache Spark sú najdôležitejším nástrojom na spracovanie veľkých dát. Hlavnou výhodou MapReduce je to, že je ľahké škálovať spracovanie dát na viacerých výpočtových uzloch, zatiaľ čo Apache Spark ponúka vysokorýchlostné výpočty, obratnosť a relatívne ľahké použitie sú dokonalými doplnkami k MapReduce. MapReduce a Apache Spark spolu majú symbiotický vzťah. Hadoop poskytuje funkcie, ktoré Spark nemá, napríklad distribuovaný systém súborov a Spark poskytuje spracovanie v pamäti v reálnom čase pre tie súbory údajov, ktoré to vyžadujú. MapReduce je program založený na diskoch, zatiaľ čo program Apache Spark je počítačový program založený na RAM. MapReduce a Apache Spark spolu sú výkonným nástrojom na spracovanie veľkých dát a zvyšujú robustnosť klastra Hadoop.
Odporúčané články
Toto bol sprievodca MapReduce verzus Apache Spark, ich význam, porovnanie hlava-hlava, kľúčové rozdiely, porovnávacia tabuľka a záver. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Azure Paas vs Iaas Užitočné porovnanie
- Najlepšie 5 rozdielov medzi Hadoop a MapReduce
- Potrebujete vedieť o MapReduce vs Spark
- Apache Storm vs Apache Spark - Naučte sa 15 užitočných rozdielov
- Apache Hive vs Apache Spark SQL - 13 úžasných rozdielov
- Groovy Interview Otázky: Úžasné otázky