Перейти к содержимому
шпаргалка.
Esc
навигацияоткрыть⌘Jпредпросмотр
На этой странице

Основы Spark

Все темы Data Engineer

Spark📝 Вопросы


Что такое Big Data?

“Big Data” - это термин, который обозначает обширные объемы данных, которые традиционные методы обработки данных не могут эффективно обрабатывать. Эти данные характеризуются тремя основными свойствами, известными как “3V”: объем (великое количество данных), скорость (быстрота генерации и обработки данных) и разнообразие (широкий спектр типов данных). Обработка Big Data требует специальных инструментов и подходов, таких как распределенные системы хранения и обработки данных, машинное обучение и аналитика больших данных.


С какими объёмами приходилось работать?

Укажите реальный объём данных и контекст: размер входа, число строк, объём за день, размер кластера и время обработки. Если работали только с небольшими наборами, так и скажите.


Что такое Spark Hadoop Hive?

Spark, Hadoop и Hive - это технологии, используемые для обработки и анализа больших объемов данных.

  1. Apache Spark - это высокопроизводительный фреймворк для обработки данных в памяти. Он предоставляет API на нескольких языках программирования для распределенной обработки данных, включая Python, Java и Scala. Spark может использоваться для выполнения широкого спектра задач, включая обработку потоковых данных, машинное обучение и аналитику данных.

  2. Apache Hadoop - это фреймворк для распределенной обработки и хранения больших данных. Hadoop включает в себя несколько компонентов, включая Hadoop Distributed File System (HDFS) для хранения данных и MapReduce для обработки данных в распределенной среде.

  3. Apache Hive - это инфраструктура для работы с данными в Hadoop, которая предоставляет SQL-подобный язык запросов, называемый HiveQL. Hive позволяет аналитикам и разработчикам выполнять аналитические запросы и агрегировать данные в Hadoop, используя привычный SQL-подход.


Объясните архитектуру Apache Spark и основные компоненты.

Архитектура Apache Spark состоит из следующих основных компонентов:

  1. SparkContext: Главный объект, управляющий кластером и координирующий выполнение задач.

  2. Driver Program: Программа, запускающая SparkContext и управляющая процессом выполнения приложений.

  3. Cluster Manager: Выделяет ресурсы приложениям, например Spark standalone, YARN или Kubernetes.

  4. Executors: Процессы приложения на рабочих узлах, выполняющие задачи и хранящие данные в памяти или на диске.

  5. Tasks: Единицы работы, выполняемые на исполнителях.

  6. RDD (Resilient Distributed Dataset): Основная абстракция данных, представляющая собой распределенную коллекцию неизменяемых объектов.

  7. Transformations and Actions: Операции над RDD для выполнения вычислений.


Какова роль драйвера и исполнителей (executors) в Spark?

Основные функции драйвера и исполнителя:

  • Driver: Управляет жизненным циклом приложения, координирует выполнение задач, создает SparkContext и генерирует план выполнения задач (DAG). Он также собирает результаты вычислений и управляет выполнением действий.

  • Executors: Исполнители выполняют задачи, распределенные драйвером, и хранят данные в памяти или на диске. Каждый исполнитель работает в своем собственном процессе на узле кластера и может выполнять несколько задач параллельно.


Как работает процесс планирования задач в Spark?

Процесс планирования задач в Spark включает следующие шаги:

  1. Создание DAG: Драйвер создает Directed Acyclic Graph (DAG) из трансформаций RDD.

  2. Разбиение DAG на этапы ( Stages ): DAG делится на этапы, которые представляют собой группы задач, не требующих обмена данными между узлами.

  3. Создание задач ( Tasks ): Каждый этап делится на задачи, соответствующие партициям данных.

  4. Отправка задач: драйвер непосредственно отправляет задачи executor-процессам. Кластерный менеджер выделяет ресурсы для их запуска.

  5. Выполнение задач: Исполнители выполняют задачи и возвращают результаты драйверу.

  6. Обработка результатов: Драйвер обрабатывает результаты и продолжает выполнение следующих этапов до завершения приложения.

Эта страница была полезной?