середа, 6 травня 2015 р.

Spark

Когда исследователи университета Беркли начинали разрабатывать Spark, они держали в голове уже сложившуюся к тому времени картину мира больших данных – принцип параллельных вычислений на кластере компьютеров, способном к расширению в ширину, позволял работать с большими объемами информации, но жертвовал скоростью работы в пользу горизонтальной масштабируемости и способности к быстрому восстановлению после системных ошибок. Здесь стоит вспомнить о нашумевшей (и до сих пор популярной) технологии MapReduce, которая примерно до февраля этого года была основной движущей силой экосистемы Apache Hadoop. Действительно эффективная для пакетной обработки данных, эта модель, однако, обладает существенными недостатками.

  • Во-первых, в угоду повышения отказоустойчивости, MapReduce предполагает хранение данных на жестких дисках – а это непременно означает снижение скорости обработки информации.
  • Во-вторых, MapReduce относится к классу однопроходных моделей вычисления, что делает ее не слишком пригодной, например, для итерационных вычислений и интерактивного анализа данных.
Все это имели в виду разработчики Spark – и их продукт на выходе получился настолько удачным и перспективным, что на данный момент именно это средство является одновременно флагманом фонда Apache и его главным козырем в рукаве.
Строго говоря, Apache Spark – это высокопроизводительное средство обработки данных, работающее в кластере Hadoop – и призванное заменить (или дополнить – зависит от точки зрения) технологию MapReduce, путем обобщения и модификации использованных для ее функционирования технологий. Ключевых момента здесь два:
  1. Повышение скорости обработки данных (до 100 раз по сравнению с MapReduce при условии работы в оперативной памяти и до 10 раз при условии взаимодействия системы с жестким диском) посредством уменьшения количества операций чтения и записи на жесткий диск – теперь существенная часть операций производится в реальном времени.
  2. Такая технология обработки информации стала возможной благодаря хранению информации о каждом операторе в оперативной памяти. Это дает и еще одно преимущество – все процессы, связанные с данными (в том числе, обработка потоков и пакетов информации и машинное обучение) происходят на одном и том же кластере данных, в одном и том же приложении.
Все это, естественно, возможно без потери способности фреймворка к горизонтальной масштабируемости и с сохранением заявленной «бесшовной» архитектуры приложения.

Взято тут

Немає коментарів:

Дописати коментар