Прежде чем говорить о Spark, я предлагаю здесь друзьям, которые интересуются Spark, если вы хотите понять, изучить и использовать Spark, официальный сайт Spark — это хороший инструмент, который может удовлетворить большинство ваших потребностей. При этом рекомендуется изучать язык scala, в основном исходя из двух моментов: 1. Spark написан на языке scala.Если вы хотите хорошо изучить Spark, вы должны изучить и проанализировать его исходный код, ну и конечно другие технологии не являются исключением 2. Написание Spark-программы на языке scala относительно Использование Java более удобно, лаконично и эффективнее в разработке (позже я объясню это отдельно для языка scala). Книга вернулась в нормальное русло, давайте представим экосистему Spark в целом.
Apache Spark — это быстрый, универсальный, масштабируемый, отказоустойчивый механизм анализа больших данных с итеративными вычислениями в памяти. Прежде всего, следует подчеркнуть, что Spark в настоящее время является вычислительным движком, который обрабатывает данные, а не хранилище. Во-первых, давайте взглянем на основные компоненты, которые в настоящее время входят в экосистему Spark:
В этой статье сначала кратко представлены сценарии использования каждого компонента, а затем автор отдельно объяснит основные компоненты.Следующее основано на версии Spark2.X.
Spark RDD и Spark SQL
Spark RDD и Spark SQL в основном используются в автономных сценариях, но Spark RDD может обрабатывать как структурированные, так и неструктурированные данные, а Spark SQL обрабатывает структурированные данные и внутренне обрабатывает распределенные наборы данных через наборы данных.
SparkStreaming и StructuredStreaming
Он используется для потоковой обработки, но подчеркивается, что Spark Streaming обрабатывает данные на основе микропакетной обработки.Даже если структурированная потоковая передача была оптимизирована в режиме реального времени, на данный момент, по сравнению с Flink и Storm, подготовка потоковой обработки Spark действительно квази -обработка в реальном времени
MLlib
Для машинного обучения, конечно, у pyspark тоже есть приложения на питоне для обработки данных
GraphX
для вычисления графа
Spark R
Обработка данных и статистический анализ на основе языка R
Ниже представлены характеристики Spark.
-
быстрый
Реализуя механизм исполнения DAG и обрабатывая данные на основе итеративных вычислений в памяти, Spark может хранить промежуточные результаты процесса анализа данных в памяти, благодаря чему нет необходимости многократно считывать и записывать данные из внешней системы хранения, что лучше, чем mapreduce подходит для сценариев, требующих итерационных операций, таких как машинное обучение и интеллектуальный анализ данных.
-
легко использовать
Поддержка языков scala, java, python, R; поддержка множества расширенных операторов (в настоящее время более 80), позволяющих пользователям быстро создавать различные приложения; поддержка интерактивных запросов scala, python и других оболочек.
-
Универсальный
Spark делает акцент на универсальном решении, объединяющем пакетную обработку, потоковую обработку, интерактивные запросы, машинное обучение и графические вычисления, чтобы избежать потери ресурсов, вызванной развертыванием различных кластеров в различных вычислительных сценариях.
-
хорошая отказоустойчивость
Отказоустойчивость достигается за счет контрольных точек при расчетах распределенных наборов данных.При сбое определенной операции нет необходимости пересчитывать с нуля [часто контрольные точки в HDFS]
-
Сильная совместимость
Может работать на Yarn, Kubernetes, Mesos и других менеджерах ресурсов, реализовывать автономный режим в качестве встроенного планировщика управления ресурсами и поддерживать несколько источников данных.