В Интернете доступно множество ресурсов для иллюстрации различий между Hadoop MapReduce и Spark MapReduce, через которые вы можете пройти, но все же, ниже я указываю ключевое отличие, чтобы вы могли понять:
- Apache Spark - это среда для анализа данных в реальном времени в
распределенная вычислительная среда. Выполняется в памяти
расчеты для увеличения скорости обработки данных. Это быстрее
для обработки крупномасштабных данных при их использовании в памяти
вычисления и другие оптимизации. Поэтому требуется высокий
вычислительная мощность. в то время как Hadoop MapReduce должен читать и писать
на диск. В результате скорость обработки отличается
значительно - Spark может быть до 100 раз быстрее. Тем не менее
Объем обрабатываемых данных также отличается: Hadoop MapReduce может
работать с гораздо большими наборами данных, чем Spark.
Задачи Hadoop MapReduce подходит для:
- Линейная обработка огромных массивов данных.
- Экономичное решение, если не ожидается немедленных результатов
Задачи Spark хорош для:
- Быстрая обработка данных
- Итеративная обработка
- Почти в режиме реального времени обработки и т. Д.
Теперь давайте перейдем ко второму вопросу. Resilient Distributed Dataset (RDD) - это фундаментальная структура данных Spark. Это неизменяемая распределенная коллекция объектов. Каждый набор данных в RDD разделен на логические разделы, которые могут быть вычислены на разных узлах кластера. СДР могут содержать объекты Python, Java или Scala любого типа, включая определяемые пользователем классы.
Таким образом, в Spark две операции выполняются на RDD (Transformations, Actions)
логика не выполняется, если вы не выполняете операцию Action, поэтому она называется ленивой оценкой