Для чего нужен спарк

Apache Spark: гайд для новичков

Для чего нужен спарк. Смотреть фото Для чего нужен спарк. Смотреть картинку Для чего нужен спарк. Картинка про Для чего нужен спарк. Фото Для чего нужен спарк

Mar 13, 2020 · 8 min read

Для чего нужен спарк. Смотреть фото Для чего нужен спарк. Смотреть картинку Для чего нужен спарк. Картинка про Для чего нужен спарк. Фото Для чего нужен спарк

Что такое Apache Spark?

Специалисты компании Databricks, основанной создателями Spark, собрали лучшее о функционале Apache Spark в своей книге Gentle Intro to Apache Spark ( очень рекомендую прочитать):

“Apache Spark — это целостная вычислительная система с набором библиотек для п араллельной обработки данных на кластерах компьютеров. На данный момент Spark считается самым активно разрабатываемым средством с открытым кодом для решения подобных задач, что позволяет ему быть полезным инструментом для любого разработчика или исследователя-специалиста, заинтересованного в больших данных. Spark поддерживает множество широко используемых языков программирования (Python, Java, Scala и R), а также библиотеки для различных задач, начиная от SQL и заканчивая стримингом и машинным обучением, а запустить его можно как с ноутбука, так и с кластера, состоящего из тысячи серверов. Благодаря этому Apache Spark и является удобной системой для начала самостоятельной работы, перетекающей в обработку больших данных в невероятно огромных масштабах.”

Что такое большие данные?

Посмотрим-ка на популярное определение больших данных по Гартнеру. Это поможет разобраться в том, как Spark способен решить множество интересных задач, которые связаны с работой с большими данными в реальном времени:

“Большие данные — это информационные активы, которые характеризуются большим объёмом, высокой скоростью и/или многообразием, а также требуют экономически эффективных инновационных форм обработки информации, что приводит к усиленному пониманию, улучшению принятия решений и автоматизации процессов.”

Для чего нужен спарк. Смотреть фото Для чего нужен спарк. Смотреть картинку Для чего нужен спарк. Картинка про Для чего нужен спарк. Фото Для чего нужен спарк

Заметка: Ключевой вывод — слово “большие” в больших данных относится не только к объёму. Вы не просто получаете много данных, они поступают в реальном времени очень быстро и в различных комплексных форматах, а ещё — из большого многообразия источников. Вот откуда появились 3-V больших данных: Volume (Объём), Velocity (Скорость), Variety (Многообразие).

Причины использовать Spark

Основываясь на самостоятельном предварительном исследовании этого вопроса, я пришёл к выводу, что у Apache Spark есть три главных компонента, которые делают его лидером в эффективной работе с большими данными, а это мотивирует многие крупные компании работать с большими наборами неструктурированных данных, чтобы Apache Spark входил в их технологический стек.

Apache Spark или Hadoop MapReduce…Что вам подходит больше?

Если отвечать коротко, то выбор зависит от конкретных потребностей вашего бизнеса, естественно. Подытоживая свои исследования, скажу, что Spark выбирают в 7-ми из 10-ти случаев. Линейная обработка огромных датасетов — преимущество Hadoop MapReduce. Ну а Spark знаменит своей быстрой производительностью, итеративной обработкой, аналитикой в режиме реального времени, обработкой графов, машинным обучением и это ещё не всё.

Хорошие новости в том, что Spark полностью совместим с экосистемой Hadoop и работает замечательно с Hadoop Distributed File System (HDFS — Распределённая файловая система Hadoop), а также с Apache Hive и другими похожими системами. Так что, когда объёмы данных слишком огромные для того, чтобы Spark мог удержать их в памяти, Hadoop может помочь преодолеть это затруднение при помощи возможностей его файловой системы. Привожу ниже пример того, как эти две системы могут работать вместе:

Для чего нужен спарк. Смотреть фото Для чего нужен спарк. Смотреть картинку Для чего нужен спарк. Картинка про Для чего нужен спарк. Фото Для чего нужен спарк

Это изображение наглядно показывает, как Spark использует в работе лучшее от Hadoop: HDFS для чтения и хранения данных, MapReduce — для дополнительной обработки и YARN — для распределения ресурсов.

Дальше я пробую сосредоточиться на множестве преимуществ Spark перед Hadoop MapReduce. Для этого я сделаю краткое поверхностное сравнение.

Для чего нужен спарк. Смотреть фото Для чего нужен спарк. Смотреть картинку Для чего нужен спарк. Картинка про Для чего нужен спарк. Фото Для чего нужен спарк

Скорость

Просто пользоваться

Обработка больших наборов данных

Функциональность

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

Машинное обучение. В Spark есть MLlib — встроенная библиотека машинного обучения, а вот Hadoop нужна третья сторона для такого же функционала. MLlib имеет алгоритмы “out-of-the-box” (возможность подключения устройства сразу после того, как его достали из коробки, без необходимости устанавливать дополнительное ПО, драйверы и т.д.), которые также реализуются в памяти.

А вот и визуальный итог множества возможностей Spark и его совместимости с другими инструментами обработки больших данных и языками программирования:

Для чего нужен спарк. Смотреть фото Для чего нужен спарк. Смотреть картинку Для чего нужен спарк. Картинка про Для чего нужен спарк. Фото Для чего нужен спарк

Заключение

Вместе со всем этим массовым распространением больших данных и экспоненциально растущей скоростью вычислительных мощностей инструменты вроде Apache Spark и других программ, анализирующих большие данные, скоро будут незаменимы в работе исследователей данных и быстро станут стандартом в индустрии реализации аналитики больших данных и решении сложных бизнес-задач в реальном времени.

Для тех, кому интересно погрузиться глубоко в технологию, которая стоит за всеми этими внешними функциями, почитайте книгу Databricks — “ A Gentle Intro to Apache Spark” или “ Big Data Analytics on Apache Spark”.

Источник

Spark

Описание термина: Apache Spark или просто Spark — это фреймворк (ПО, объединяющее готовые компоненты большого программного проекта), который используют для параллельной обработки неструктурированных или слабоструктурированных данных.

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

Зачем нужен Spark

Области использования Spark — это Big Data и технологии машинного обучения, поэтому им пользуются специалисты, работающие с данными, например дата-инженеры, дата-сайентисты и аналитики данных.

Примеры задач, которые можно решить с помощью Spark:

Spark поддерживает языки программирования Scala, Java, Python, R и SQL. Сначала популярными были только первые два, так как на Scala фреймворк был написан, а на Java позже была дописана часть кода. С ростом Python-сообщества этим языком тоже стали пользоваться активнее, правда обновления и новые фичи в первую очередь доступны для Scala-разработчиков. Реже всего для работы со Spark используют язык R.

Data Scientist с нуля

Всего за год вы получите перспективную профессию, пополните портфолио рекомендательной системой и нейросетями, примете участие в соревнованиях на Kaggle и в хакатонах.

В структуру Spark входят ядро для обработки данных и набор расширений:

Как работает Spark

Спарк интегрирован в Hadoop — экосистему инструментов с открытым доступом, в которую входят библиотеки, система управления кластером (Yet Another Resource Negotiator), технология хранения файлов на различных серверах (Hadoop Distributed File System) и система вычислений MapReduce. Классическую модель Hadoop MapReduce и Spark постоянно сравнивают, когда речь заходит об обработке больших данных.

Принципиальные отличия Spark и MapReduce

Пакетная обработка данных

Хранит данные на диске

В 100 раз быстрее, чем MapReduce

Обработка данных в реальном времени

Хранит данные в оперативной памяти

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

Читайте также: Какой язык учить аналитику данных?

Обработка данных в реальном времени с помощью Spark Streaming — это переход на микропакетный принцип, когда данные постоянно обрабатываются небольшими группами.

Для чего нужен спарк. Смотреть фото Для чего нужен спарк. Смотреть картинку Для чего нужен спарк. Картинка про Для чего нужен спарк. Фото Для чего нужен спарк

Кроме этого, вычисления MapReduce производятся на диске, а Spark производит их в оперативной памяти, и за счет этого его производительность возрастает в 100 раз. Однако специалисты предупреждают, что заявленная «молниеносная скорость работы» Spark не всегда способна решить задачу. Если потребуется обработать больше 10 Тб данных, классический MapReduce доведет вычисление до конца, а вот у Spark может не хватить памяти для такого вычисления.

Но даже сбой в работе кластера не спровоцирует потерю данных. Основу Spark составляют устойчивые распределенные наборы данных (Resilient Distributed Dataset, RDD). Это значит, что каждый датасет хранится на нескольких узлах одновременно и это защищает весь массив.

Освойте самую перспективную профессию 2021 года. После обучения вы будете обладать навыками middle-специалиста и рассчитывать на среднюю зарплату по отрасли.

Разработчики говорят, что до выхода версии Spark 2.0 платформа работала нестабильно, постоянно падала, ей не хватало памяти, и проблемы решались многочисленными обновлениями. Но в 2021 году специалисты уже не сталкиваются с этим, а обновления в основном направлены на расширение функционала и поддержку новых языков.

✅ «Наша компания использует Spark для прогнозирования финансовых рисков»

❌ «Я учусь работать в программе Spark»

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *