Разлики между MapReduce и Apache Spark
Apache Hadoop е софтуерна рамка с отворен код, създадена да мащабира от единични сървъри до хиляди машини и да изпълнява приложения на клъстери от хардуер на стоки. Рамката Apache Hadoop е разделена на два слоя.
- Hadoop разпределена файлова система (HDFS)
- Обработващ слой (MapReduce)
Слоят за съхранение на Hadoop т.е. HDFS е отговорен за съхранението на данни, докато MapReduce е отговорен за обработката на данни в Hadoop Cluster. MapReduce е тази парадигма за програмиране, която позволява масирана мащабируемост на стотици или хиляди сървъри в клъстер Hadoop. MapReduce е техника на обработка и програмен модел за разпределени изчисления, базиран на езика за програмиране Java. MapReduce е мощна рамка за обработка на големи, разпределени набори от структурирани или неструктурирани данни в клъстер Hadoop, съхраняван в разпределената файлова система (HDFS) на Hadoop. Мощните характеристики на MapReduce са неговата мащабируемост.
- Apache Spark е светкавична и клъстерна изчислителна технологична рамка, предназначена за бързи изчисления при мащабна обработка на данни. Apache Spark е двигател с разпределена обработка, но не се предлага с вграден клъстер за управление на ресурси и разпределена система за съхранение. Трябва да включите мениджър на клъстери и система за съхранение по ваш избор. Apache Spark се състои от ядро Spark и набор от библиотеки, подобни на наличните за Hadoop. Ядрото е двигателят на разпределеното изпълнение и набор от езици. Apache Spark поддържа езици като Java, Scala, Python и R за разработка на разпределени приложения. Допълнителните библиотеки са изградени върху ядрото Spark, за да позволят натоварванията, които използват поточно, SQL, графично и машинно обучение. Apache Spark е двигател за обработка на данни за пакетни и поточни режими, включващ SQL заявки, обработка на графики и машинно обучение. Apache Spark може да работи независимо, а също и на Hadoop YARN Cluster Manager и по този начин може да чете съществуващи данни на Hadoop.
- Можете да изберете Apache YARN или Mesos за мениджър на клъстери за Apache Spark.
- Можете да изберете Hadoop разпределена файлова система (HDFS), облачно хранилище в Google, Amazon S3, Microsoft Azure за мениджър на ресурси за Apache Spark.
Сравнение между главата на MapReduce и Apache Spark (Инфографика)
По-долу е топ 20 за сравнение между MapReduce срещу Apache Spark
Ключова разлика между MapReduce срещу Apache Spark
- MapReduce е строго базиран на диска, докато Apache Spark използва памет и може да използва диск за обработка.
- MapReduce и Apache Spark имат подобна съвместимост по отношение на типове данни и източници на данни.
- Основната разлика между MapReduce и Spark е, че MapReduce използва устойчиво съхранение, а Spark използва устойчиви разпределени набори от данни.
- Hadoop MapReduce е предназначен за данни, които не се вписват в паметта, докато Apache Spark има по-добра производителност за данните, които се вписват в паметта, особено на специализирани клъстери.
- Hadoop MapReduce може да бъде икономичен вариант, тъй като Hadoop като услуга, а Apache Spark е по-икономичен поради високата памет на разположение
- Apache Spark и Hadoop MapReduce са непоносими, но сравнително Hadoop MapReduce е по-толерантен от отказа.
- Hadoop MapReduce изисква основни умения за java програмиране, докато програмирането в Apache Spark е по-лесно, тъй като има интерактивен режим.
- Spark е в състояние да изпълнява партидни задачи за обработка между 10 до 100 пъти по-бързо от MapReduce Въпреки че и двата инструмента се използват за обработка на големи данни.
Кога да използвате MapReduce:
- Линейна обработка на голям набор от данни
- Не се изисква междинно решение
Кога да използвате Apache Spark:
- Бърза и интерактивна обработка на данни
- Присъединяване към набори от данни
- Графична обработка
- Итеративни работни места
- Обработка в реално време
- Машинно обучение
MapReduce срещу Apache Spark Таблица за сравнение
MapReduce | Apache Spark | |
Обработка на данни | Само за пакетна обработка | Партидна обработка, както и обработка на данни в реално време |
Скорост на обработка | По-бавна от Apache Spark, защото ако закъсненията на дисковете с I / O диск | 100 пъти по-бързо в паметта и 10 пъти по-бързо, докато работи на диск |
категория | Двигател за обработка на данни | Data Analytics Engine |
Разходи | По-малко по-скъпо сравнявайки Apache Spark | По-скъпи, поради голямо количество RAM |
скалируемост | И двете са мащабируеми, ограничени до 1000 възли в единичен клъстер | И двете са мащабируеми, ограничени до 1000 възли в единичен клъстер |
Машинно обучение | MapReduce е по-съвместим с Apache Mahout, докато се интегрира с машинно обучение | Apache Spark имат вградени API за машинно обучение |
Съвместимост | До голяма степен съвместими с всички източници на данни и формати на файлове | Apache Spark може да се интегрира с всички източници на данни и формати на файлове, поддържани от клъстер Hadoop |
Сигурност | Рамката на MapReduce е по-сигурна в сравнение с Apache Spark | Функцията за сигурност в Apache Spark се развива по-бързо и зрее |
Scheduler | Зависим от външния планировчик | Apache Spark има собствен планировчик |
Толерантност на грешки | Използва репликация за грешка Толерантност | Apache Spark използва RDD и други модели за съхранение на данни за Fale Tolerance |
Лесно използване | MapReduce е малко сложен, сравнявайки Apache Spark заради JAVA API | Apache Spark е по-лесен за използване поради богати API |
Дублиращо премахване | MapReduce не поддържа тази функция | Apache Spark обработва всеки запис точно веднъж, следователно елиминира дублирането. |
Езикова поддръжка | Основният език е Java, но езици като C, C ++, Ruby, Python, Perl, Groovy също се поддържат | Apache Spark поддържа Java, Scala, Python и R |
латентност | Много висока латентност | Много по-бързо сравняване на MapReduce Framework |
Сложност | Трудно пишете и отстранявате грешки в кодовете | Лесен за писане и отстраняване на грешки |
Общност Apache | Рамка с отворен код за обработка на данни | Open Source Framework за обработка на данни с по-висока скорост |
кодиране на стоките | Още линии от код | По-малки редове от код |
Интерактивен режим | Не е интерактивен | Интерактивен |
инфраструктура | Товарен хардуер | Хардуер от средно до високо ниво |
SQL | Поддържа чрез Hive Query Language | Поддържа се чрез Spark SQL |
Заключение - MapReduce срещу Apache Spark
MapReduce и Apache Spark са най-важният инструмент за обработка на Big Data. Основното предимство на MapReduce е, че е лесна за мащабиране на обработката на данни в множество изчислителни възли, докато Apache Spark предлага високоскоростни изчисления, гъвкавост и относителна лекота на използване са перфектни допълнения към MapReduce. MapReduce и Apache Spark имат симбиотична връзка помежду си. Hadoop предоставя функции, които Spark не притежава, като например разпределена файлова система, а Spark осигурява обработка в памет в реално време за онези набори от данни, които изискват това. MapReduce е дисково изчисление, докато Apache Spark е изчисление на базата на RAM. MapReduce и Apache Spark заедно са мощен инструмент за обработка на големи данни и прави Hadoop Cluster по-здрав.
Препоръчителни статии
Това е ръководство за MapReduce срещу Apache Spark, тяхното значение, сравнение между главата, ключови разлики, таблица за сравнение и заключение. Можете също да разгледате следните статии, за да научите повече -
- Azure Paas vs Iaas Полезни сравнения за научаване
- Най-добрите 5 разлики между Hadoop срещу MapReduce
- Трябва да знаете за MapReduce срещу Spark
- Apache Storm срещу Apache Spark - Научете 15 полезни разлики
- Apache Hive срещу Apache Spark SQL - 13 невероятни разлики
- Groovy Интервю въпроси: Невероятни въпроси