💥Топ 5 причин использовать Apache Spark для обработки Big Data
Apache Spark – популярный Big Data фреймворк с открытым исходным кодом для обработки больших массивов данных в распределенной среде. Он входит в экосистему проектов Apache Hadoop. Данный фреймворк хорош тем, что имеет в своем арсенале следующие элементы:
• Богатый API - Spark предоставляет разработчику довольно обширный API, что позволяет работать с разными языками программирования, например: Python, R, Scala и Java. Spark также предлагает пользователю абстракцию датафрейма (dataframe), для которых используются объектно-ориентированные методы преобразований, объединения данных, их фильтрации, а также много других полезных возможностей.
• Довольно широкий функционал - Spark обладает широкими функциональными возможностями за счет таких компонентов, как:
1. Spark SQL - модуль, который служит для аналитической обработки данных с помощью SQL-запросов
2. Spark Streaming – модуль, обеспечивающий надстройку для обработки потоковых данных в режиме онлайн
3. MLLib – модуль, предоставляющий набор библиотек машинного обучения в распределенной среде
• Ленивые вычисления - позволяют снизить общий объем вычислений и повысить производительность программы за счет снижений требований к памяти. Данный вид вычислений весьма полезен, так как это позволяет определять сложную структуру преобразований, представленных в виде объектов. Также существует возможность проверить структуру конечного результата, не выполняя какие-либо промежуточные шаги. Еще Spark автоматически проверяет план выполнения запросов или программы на наличие ошибок. Это позволяет быстро отловить баги и отладить их.
• Открытый исходный код - входя в линейку проектов Apache Software Foundation, Спарк продолжает активно развиваться за счет сообщества разработчиков. Также, несмотря на то, что Spark является бесплатным инструментом, у него весьма подробная документация: https://spark.apache.org/documentation.html
• Распределенная обработка данных - Apache Spark предусматривает распределенную обработку данных, включая концепцию распределенных датасетов RDD (resilient distributed dataset) – это распределенная структура данных, которая размещается в оперативной памяти. Каждый такой датасет содержит фрагмент данных, распределенных по узлам кластера. За счет этого он является отказоустойчивым: если раздел теряется в результате сбоя узла, он может быть восстановлен из исходных источников. Таким образом, Spark сам раскидывает код по всем узлам кластера, разбивает его на подзадачи, создает план выполнения и отслеживает успешность выполнения.
Post #385
1.34K
- 👍 4
- ❤ 1
- 🔥 1