Основы Spark
Spark📝 Вопросы
Что такое Big Data?
“Big Data” - это термин, который обозначает обширные объемы данных, которые традиционные методы обработки данных не могут эффективно обрабатывать. Эти данные характеризуются тремя основными свойствами, известными как “3V”: объем (великое количество данных), скорость (быстрота генерации и обработки данных) и разнообразие (широкий спектр типов данных). Обработка Big Data требует специальных инструментов и подходов, таких как распределенные системы хранения и обработки данных, машинное обучение и аналитика больших данных.
С какими объёмами приходилось работать?
Укажите реальный объём данных и контекст: размер входа, число строк, объём за день, размер кластера и время обработки. Если работали только с небольшими наборами, так и скажите.
Что такое Spark Hadoop Hive?
Spark, Hadoop и Hive - это технологии,
используемые для обработки и анализа больших объемов данных.
-
Apache Spark- это высокопроизводительный фреймворк для обработки данных в памяти. Он предоставляет API на нескольких языках программирования для распределенной обработки данных, включая Python, Java и Scala. Spark может использоваться для выполнения широкого спектра задач, включая обработку потоковых данных, машинное обучение и аналитику данных. -
Apache Hadoop- это фреймворк для распределенной обработки и хранения больших данных. Hadoop включает в себя несколько компонентов, включая Hadoop Distributed File System (HDFS) для хранения данных и MapReduce для обработки данных в распределенной среде. -
Apache Hive- это инфраструктура для работы с данными в Hadoop, которая предоставляет SQL-подобный язык запросов, называемый HiveQL. Hive позволяет аналитикам и разработчикам выполнять аналитические запросы и агрегировать данные в Hadoop, используя привычный SQL-подход.
Объясните архитектуру Apache Spark и основные компоненты.
Архитектура Apache Spark состоит из следующих основных компонентов:
-
SparkContext: Главный объект, управляющий кластером и координирующий выполнение задач. -
Driver Program: Программа, запускающая SparkContext и управляющая процессом выполнения приложений. -
Cluster Manager: Выделяет ресурсы приложениям, например Spark standalone, YARN или Kubernetes.
-
Executors: Процессы приложения на рабочих узлах, выполняющие задачи и хранящие данные в памяти или на диске.
-
Tasks: Единицы работы, выполняемые на исполнителях. -
RDD(Resilient Distributed Dataset): Основная абстракция данных, представляющая собой распределенную коллекцию неизменяемых объектов. -
Transformations and Actions: Операции над RDD для выполнения вычислений.
Какова роль драйвера и исполнителей (executors) в Spark?
Основные функции драйвера и исполнителя:
-
Driver: Управляет жизненным циклом приложения, координирует выполнение задач, создаетSparkContextи генерирует план выполнения задач (DAG). Он также собирает результаты вычислений и управляет выполнением действий. -
Executors: Исполнители выполняют задачи, распределенные драйвером, и хранят данные в памяти или на диске. Каждый исполнитель работает в своем собственном процессе на узле кластера и может выполнять несколько задач параллельно.
Как работает процесс планирования задач в Spark?
Процесс планирования задач в Spark включает следующие шаги:
-
Создание
DAG: Драйвер создает Directed Acyclic Graph (DAG) из трансформаций RDD. -
Разбиение
DAGна этапы (Stages): DAG делится на этапы, которые представляют собой группы задач, не требующих обмена данными между узлами. -
Создание задач (
Tasks): Каждый этап делится на задачи, соответствующие партициям данных. -
Отправка задач: драйвер непосредственно отправляет задачи executor-процессам. Кластерный менеджер выделяет ресурсы для их запуска.
-
Выполнение задач: Исполнители выполняют задачи и возвращают результаты драйверу.
-
Обработка результатов: Драйвер обрабатывает результаты и продолжает выполнение следующих этапов до завершения приложения.