ScholarGate
Ассистент

Фреймворки для обработки больших данных

Фреймворки для больших данных позволяют программистам обрабатывать наборы данных, значительно превышающие возможности одной машины, выражая вычисления в виде параллельных потоков данных, которые среда выполнения распределяет и делает отказоустойчивыми.

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

Фреймворк для обработки больших данных — это система, которая позволяет программисту выражать вычисления над очень большим набором данных в виде высокоуровневых операторов потока данных и которая автоматически разделяет данные, планирует параллельное выполнение в кластере и обеспечивает отказоустойчивость узлов.

Scope

Эта тема охватывает модель программирования потоков данных для обработки данных в масштабе кластера: парадигму MapReduce и ее ограничения, механизмы потоков данных в памяти, построенные на отказоустойчивых распределенных наборах данных, а также унифицированную пакетную и потоковую обработку с использованием окон, семантики времени событий и гарантий однократного выполнения. В ней рассматривается, как массивные, возможно неограниченные, данные разделяются, обрабатываются параллельно и восстанавливаются после сбоев.

Core questions

  • Как можно выразить и выполнить параллельно вычисление над данными, слишком большими для одной машины?
  • Как механизмы обработки в памяти и потоковой обработки улучшают пакетный MapReduce?
  • Как сбалансировать корректность, задержку и отказоустойчивость для неограниченных, неупорядоченных потоков?

Key theories

MapReduce
MapReduce выражает обработку данных как шаг сопоставления (map), который преобразует записи в пары ключ-значение, и шаг сокращения (reduce), который агрегирует по ключу, при этом среда выполнения обрабатывает распараллеливание, перемешивание данных и повторное выполнение сбойных задач.
Отказоустойчивые распределенные наборы данных
RDDs (Resilient distributed datasets) предоставляют отказоустойчивую абстракцию в памяти, чья история детерминированных преобразований позволяет пересчитывать потерянные разделы, обеспечивая итеративные и интерактивные кластерные вычисления значительно быстрее, чем дисковый MapReduce.
Унифицированный пакетный и потоковый поток данных
Современные движки рассматривают пакетную обработку как частный случай потоковой, используя оконную обработку по времени событий и водяные знаки, а также согласованные снимки для получения результатов с гарантией однократного выполнения над неограниченными, неупорядоченными данными.

Clinical relevance

Эти фреймворки обрабатывают данные, лежащие в основе поисковых систем, аналитики, рекомендательных систем и конвейеров машинного обучения, а потоковые движки обеспечивают работу систем мониторинга в реальном времени и событийно-ориентированных приложений, что делает их основной инфраструктурой для интенсивных вычислений с данными.

History

Статья Google 2004 года о MapReduce (пересмотренная в 2008 году) заложила основы обработки данных в масштабе кластера; отказоустойчивые распределенные наборы данных Spark (2012) обеспечили быструю обработку в памяти и итеративную обработку; а такие системы, как Flink и модель потоков данных (2015), унифицировали пакетную и потоковую обработку с сильными гарантиями корректности.

Debates

Пакетная обработка против потоковой как основной модели обработки
Пакетная обработка проще и легко реализуется с гарантией однократного выполнения, но увеличивает задержку, в то время как потоковая обработка предлагает низкую задержку ценой более сложной корректности при неупорядоченных данных; унифицированные движки утверждают, что потоковая обработка может охватывать пакетную, хотя пакетная обработка остается распространенной для больших исторических задач.

Key figures

  • Jeffrey Dean
  • Sanjay Ghemawat
  • Matei Zaharia
  • Tyler Akidau

Related topics

Seminal works

  • dean2008
  • zaharia2012
  • akidau2015

Frequently asked questions

Почему Spark и аналогичные системы вытеснили обычный MapReduce для многих рабочих нагрузок?
MapReduce записывает промежуточные результаты на диск между каждым шагом, что медленно для итеративных алгоритмов. Абстракции в памяти, такие как отказоустойчивые распределенные наборы данных, сохраняют данные в памяти между шагами и пересчитывают только потерянные разделы при сбое, что обеспечивает значительное ускорение для итеративной и интерактивной аналитики.

Methods for this concept

Related concepts