
Különbségek a MapReduce és az Apache Spark között
Az Apache Hadoop egy nyílt forráskódú szoftveres keret, amelyet úgy terveztek, hogy az egyes szerverekről több ezer gépre bővüljön, és alkalmazásokat futtasson árucikk-hardverek klaszterén. Az Apache Hadoop keret két rétegre oszlik.
- Hadoop elosztott fájlrendszer (HDFS)
 - Réteg feldolgozása (MapReduce)
 
A Hadoop tároló rétege, azaz a HDFS felelős az adatok tárolásáért, míg a MapReduce az adatok feldolgozásáért a Hadoop Cluster. A MapReduce ez a programozási paradigma, amely lehetővé teszi a hatalmas méretezhetőséget több száz vagy több ezer szerver között egy Hadoop-fürtön. A MapReduce egy feldolgozási technika és programmodell az elosztott számításhoz a Java programozási nyelv alapján. A MapReduce egy hatékony keretrendszer a Hadoop-elosztott fájlrendszerben (HDFS) tárolt Hadoop-fürtök nagy, elosztott strukturált vagy nem strukturált adatainak feldolgozására. A MapReduce nagyszerű tulajdonságai a méretezhetőség.
- Az Apache Spark villámgyors és fürtös számítástechnikai keretrendszer, amelyet nagyszabású adatfeldolgozás gyors számításához terveztek. Az Apache Spark egy elosztott feldolgozó motor, de nem tartozik beépített fürt erőforrás-kezelővel és elosztott tárolórendszerrel. Csatlakoznia kell a választott fürtkezelőt és tárolórendszert. Az Apache Spark egy Spark magból és egy könyvtárakból áll, amelyek hasonlóak a Hadoop számára elérhetőkhöz. A mag az elosztott végrehajtó motor és a nyelvek halmaza. Az Apache Spark olyan nyelveket támogat, mint a Java, a Scala, a Python és az R az elosztott alkalmazásfejlesztéshez. A Spark mag tetejére további könyvtárak épülnek, amelyek lehetővé teszik a streaming, SQL, grafikon és gépi tanulást használó munkaterheléseket. Az Apache Spark adatfeldolgozó motor kötegelt és streaming módokban, beleértve SQL lekérdezéseket, grafikonfeldolgozást és gépi tanulást. Az Apache Spark önállóan és a Hadoop YARN Cluster Manager-en is futtatható, és így képes olvasni a meglévő Hadoop-adatokat.
 
- Az Apache YARN vagy a Mesos a fürtkezelőhöz választhat az Apache Spark számára.
 - Az Apache Spark erőforráskezelőjéhez választhat a Hadoop elosztott fájlrendszerét (HDFS), a Google felhőalapú tárolását, az Amazon S3-ot, a Microsoft Azure-t.
 
Összehasonlítás a MapReduce és az Apache Spark között (Infographics)
Az alábbiakban látható a 20 legjobb összehasonlítás a MapReduce és az Apache Spark között

Legfontosabb különbség a MapReduce és az Apache Spark között
- A MapReduce szigorúan lemez-alapú, míg az Apache Spark memóriát használ és feldolgozásra képes egy lemezt.
 - A MapReduce és az Apache Spark hasonló kompatibilitással rendelkezik az adattípusok és az adatforrások szempontjából.
 - Az elsődleges különbség a MapReduce és a Spark között az, hogy a MapReduce állandó tárolást használ, míg a Spark rugalmas és elosztott adatkészleteket használ.
 - A Hadoop MapReduce olyan adatokra szolgál, amelyek nem férnek el a memóriában, míg az Apache Spark jobb teljesítményt nyújt azoknak az adatoknak, amelyek a memóriába illeszkednek, különösen a dedikált fürtökön.
 - A Hadoop MapReduce gazdaságos lehetőség lehet, mivel a Hadoop mint szolgáltatás, az Apache Spark pedig a magas rendelkezésre állású memória miatt költséghatékonyabb.
 - Az Apache Spark és a Hadoop MapReduce egyaránt hibatűrő, de összehasonlítva a Hadoop MapReduce jobban hibatűrő, mint a Spark.
 - A Hadoop MapReduce alapvető java programozási ismereteket igényel, míg az Apache Sparkban történő programozás könnyebb, mivel interaktív módban van.
 - A Spark 10–100-szor gyorsabban képes végrehajtani a kötegelt feldolgozási feladatokat, mint a MapReduce, bár mindkét eszközt a Big Data feldolgozására használják.
 
Mikor kell használni a MapReduce-t:
- Nagy adatkészlet lineáris feldolgozása
 - Nincs szükség közbenső megoldásra
 
Mikor kell használni az Apache Spark-ot:
- Gyors és interaktív adatfeldolgozás
 - Csatlakozás az adatkészletekhez
 - Grafikon feldolgozás
 - Iteratív munkák
 - Valós idejű feldolgozás
 - Gépi tanulás
 
MapReduce vs Apache Spark összehasonlító táblázat
| MapReduce | Apache Spark | |
| Adatfeldolgozás | Csak kötegelt feldolgozásra | Kötegelt feldolgozás, valamint valósidejű adatfeldolgozás | 
| Feldolgozási sebesség | Lassabb, mint az Apache Spark, mert ha I / O lemez késleltetés | 100x gyorsabb a memóriában és 10x gyorsabb, miközben lemezen fut | 
| Kategória | Adatfeldolgozó motor | Data Analytics Engine | 
| kiadások | Olcsóbb, összehasonlítva az Apache Spark-t | Költségigényesebb a nagy mennyiségű RAM miatt | 
| skálázhatóság | Mindkettő méretezhető, 1000 csomópontra korlátozva egyetlen fürtben | Mindkettő méretezhető, 1000 csomópontra korlátozva egyetlen fürtben | 
| Gépi tanulás | A MapReduce jobban kompatibilis az Apache Mahout-tal, miközben integrálódik a Machine Learning-hez | Az Apache Spark beépített API-kat biztosít a gépi tanuláshoz | 
| Kompatibilitás | Alapvetően kompatibilis az összes adatforrással és fájlformátummal | Az Apache Spark integrálható az összes adatforráshoz és fájlformátumhoz, amelyet a Hadoop-fürt támogat | 
| Biztonság | A MapReduce keretrendszer biztonságosabb az Apache Sparkhoz képest | Az Apache Spark biztonsági funkciója tovább fejlődik és éretté válik | 
| Scheduler | A külső ütemezőtől függ | Az Apache Spark saját ütemezővel rendelkezik | 
| Hibatűrés | Replikációt használ a hibatolerancia miatt | Az Apache Spark RDD-t és más adattárolási modelleket használ a hibatűréshez | 
| Egyszerű használat | A MapReduce kissé összetett, összehasonlítva az Apache Spark-tal, a JAVA API-k miatt | Az Apache Spark könnyebben használható a Rich API-k miatt | 
| Másolatos eltávolítás | A MapReduce nem támogatja ezt a funkciót | Az Apache Spark folyamata minden rekordot pontosan egyszer elvégzi, így kiküszöbölhető a duplikáció. | 
| Nyelvi támogatás | Az elsődleges nyelv Java, de olyan nyelvek, mint a C, C ++, a Ruby, a Python, a Perl, a Groovy is támogatottak | Az Apache Spark támogatja a Java, a Scala, a Python és az R szoftvert | 
| Késleltetés | Nagyon magas késés | Sokkal gyorsabb a MapReduce Framework összehasonlítása | 
| Bonyolultság | Nehéz kódot írni és hibakeresni | Könnyen írható és hibakereshető | 
| Apache közösség | Nyílt forráskódú keret az adatok feldolgozásához | Nyílt forráskódú keret az adatok nagyobb sebességű feldolgozására | 
| Coding | További kódsorok | Kód kisebb sorai | 
| Interaktív mód | Nem interaktív | Interaktív | 
| Infrastruktúra | Árucikk Hardver | Közepes és magas szintű hardver | 
| SQL | Támogatja a kaptár lekérdezési nyelvén keresztül | Támogatja a Spark SQL-en keresztül | 
Következtetés - MapReduce vs Apache Spark
A MapReduce és az Apache Spark egyaránt a legfontosabb eszközök a Big Data feldolgozásához. A MapReduce fő előnye, hogy az adatfeldolgozás egyszerűen méretezhető több számítógépes csomópont felett, míg az Apache Spark nagysebességű számítást kínál, az agilitás és a viszonylag egyszerű használat tökéletes kiegészítést nyújt a MapReduce számára. A MapReduce és az Apache Spark szimbiotikus kapcsolatban állnak egymással. A Hadoop olyan szolgáltatásokat nyújt, amelyeknek a Spark nem rendelkezik, például egy elosztott fájlrendszert, a Spark pedig valósidejű, memóriában történő feldolgozást biztosít azokhoz az adatkészletekhez, amelyek ezt megkövetelik. A MapReduce lemez alapú számítástechnika, míg az Apache Spark RAM alapú számítástechnika. A MapReduce és az Apache Spark együttesen hatékony eszköz a nagy adatok feldolgozására, és robusztusabbá teszi a Hadoop klasztert.
Ajánlott cikkek
Ez egy útmutató a MapReduce vs Apache Spark, azok jelentése, a fej-fej összehasonlítás, a legfontosabb különbségek, az összehasonlító táblázat és a következtetés összefoglalójához. A következő cikkeket is megnézheti további információkért -
- Azure Paas vs Iaas Hasznos összehasonlítások a tanuláshoz
 - A legjobb 5 különbség a Hadoop és a MapReduce között
 - Tudnia kell a MapReduce vs Spark programról
 - Apache Storm vs Apache Spark - Tanulj meg 15 hasznos különbséget
 - Apache Hive vs Apache Spark SQL - 13 lenyűgöző különbség
 - Groovy interjúkérdések: Csodálatos kérdések