Разлики между MapReduce и Apache Spark

Apache Hadoop е софтуерна рамка с отворен код, създадена да мащабира от единични сървъри до хиляди машини и да изпълнява приложения на клъстери от хардуер на стоки. Рамката Apache Hadoop е разделена на два слоя.

  • Hadoop разпределена файлова система (HDFS)
  • Обработващ слой (MapReduce)

Слоят за съхранение на Hadoop т.е. HDFS е отговорен за съхранението на данни, докато MapReduce е отговорен за обработката на данни в Hadoop Cluster. MapReduce е тази парадигма за програмиране, която позволява масирана мащабируемост на стотици или хиляди сървъри в клъстер Hadoop. MapReduce е техника на обработка и програмен модел за разпределени изчисления, базиран на езика за програмиране Java. MapReduce е мощна рамка за обработка на големи, разпределени набори от структурирани или неструктурирани данни в клъстер Hadoop, съхраняван в разпределената файлова система (HDFS) на Hadoop. Мощните характеристики на MapReduce са неговата мащабируемост.

  1. 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 Таблица за сравнение

MapReduceApache 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 APIApache 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, тяхното значение, сравнение между главата, ключови разлики, таблица за сравнение и заключение. Можете също да разгледате следните статии, за да научите повече -

  1. Azure Paas vs Iaas Полезни сравнения за научаване
  2. Най-добрите 5 разлики между Hadoop срещу MapReduce
  3. Трябва да знаете за MapReduce срещу Spark
  4. Apache Storm срещу Apache Spark - Научете 15 полезни разлики
  5. Apache Hive срещу Apache Spark SQL - 13 невероятни разлики
  6. Groovy Интервю въпроси: Невероятни въпроси

Категория: