15+ вопросов и ответов из интервью Apache Spark 2022
Опубликовано: 2021-01-08Любой, кто знаком с Apache Spark, знает, почему сегодня он становится одним из самых популярных инструментов для работы с большими данными — он позволяет выполнять сверхбыстрые вычисления.
Тот факт, что Spark поддерживает быструю обработку больших данных, делает его популярным среди компаний по всему миру. От громких имен, таких как Amazon, Alibaba, eBay и Yahoo, до небольших фирм в отрасли, Spark завоевал огромное количество поклонников. Благодаря этому компании постоянно ищут квалифицированных специалистов по большим данным с опытом работы в Spark.
Для всех, кто хочет получить работу, связанную с профилем Big Data (Spark), вы должны сначала успешно пройти собеседование в Spark. Вот то, что может сделать вас на шаг ближе к вашей цели — 15 наиболее часто задаваемых вопросов на собеседовании в Apache Spark!
- Что такое Искра?
Spark — это среда кластерных вычислений больших данных с открытым исходным кодом, которая позволяет обрабатывать данные в режиме реального времени. Это механизм обработки данных общего назначения, способный обрабатывать различные рабочие нагрузки, такие как пакетные, интерактивные, итеративные и потоковые. Spark выполняет вычисления в памяти, которые помогают повысить скорость обработки данных. Он может работать автономно, в Hadoop или в облаке.
- Что такое РДД?
RDD или Resilient Distributed Dataset — это основная структура данных Spark. Это важная абстракция в Spark, которая представляет ввод данных в формате объекта. RDD — это неизменяемая коллекция объектов, доступная только для чтения, в которой каждый узел разделен на более мелкие части, которые можно вычислять на разных узлах кластера, чтобы обеспечить независимую обработку данных.
- Различия между Apache Spark и Hadoop MapReduce.
Основные отличия между Apache Spark и Hadoop MapReduce:

- Spark проще программировать и не требует никаких абстракций. MapReduce написан на Java, и его сложно программировать. Ему нужны абстракции.
- У Spark есть интерактивный режим, а у MapReduce его нет. Однако такие инструменты, как Pig и Hive, упрощают работу с MapReduce.
- Spark позволяет выполнять пакетную обработку, потоковую передачу и машинное обучение в одном кластере. MapReduce лучше всего подходит для пакетной обработки.
- Spark может изменять данные в режиме реального времени с помощью Spark Streaming. В MapReduce нет такой возможности в режиме реального времени — вы можете обрабатывать только пакет сохраненных данных.
- Spark упрощает вычисления с низкой задержкой, кэшируя частичные результаты в памяти. Это требует больше места в памяти. Напротив, MapReduce ориентирован на диски, что позволяет использовать постоянное хранилище.
- Поскольку Spark может выполнять задачи обработки в памяти, он может обрабатывать данные намного быстрее, чем MapReduce.
- Что такое разреженный вектор?
Разреженный вектор состоит из двух параллельных массивов, один для индексов, а другой для значений. Они используются для хранения ненулевых записей для экономии места в памяти.
- Что такое партиционирование в Spark?
Разделение используется для создания меньших и логических блоков данных, чтобы ускорить обработку данных. В Spark все представляет собой разделенный RDD. Разделы распараллеливают распределенную обработку данных с минимальным сетевым трафиком для отправки данных различным исполнителям в системе.
- Дайте определение трансформации и действию.
И преобразование, и действие — это операции, выполняемые в RDD.
Когда функция преобразования применяется к RDD, она создает еще один RDD. Двумя примерами преобразования являются map() и filer(): в то время как map() применяет переданную ей функцию к каждому элементу RDD и создает другое RDD, filter() создает новое RDD, выбирая компоненты из существующего RDD, которые передают аргумент функции. Он срабатывает только тогда, когда происходит действие.
Действие извлекает данные из RDD на локальный компьютер. Он запускает выполнение, используя граф происхождения для загрузки данных в исходный RDD, выполнения всех промежуточных преобразований и возврата окончательных результатов в программу драйвера или записи их в файловую систему.
- Что такое граф происхождения?
В Spark RDD зависят друг от друга. Графическое представление этих зависимостей между СДР называется графом происхождения. Используя информацию из графа происхождения, каждое RDD можно вычислить по запросу — если когда-либо будет потерян фрагмент постоянного RDD, потерянные данные можно будет восстановить с помощью информации графа происхождения.

- Какова цель SparkCore?
SparkCore — базовый движок Spark. Он выполняет множество жизненно важных функций, таких как отказоустойчивость, управление памятью, мониторинг заданий, планирование заданий и взаимодействие с системами хранения.
- Назовите основные библиотеки экосистемы Spark.
Основные библиотеки в экосистеме Spark:
- Spark Streaming — используется для обеспечения потоковой передачи данных в реальном времени.
- Spark MLib — это библиотека машинного обучения Spark, в которой обычно используются алгоритмы обучения, такие как классификация, регрессия, кластеризация и т. д.
- Spark SQL — помогает выполнять SQL-подобные запросы к данным Spark, применяя стандартные инструменты визуализации или бизнес-аналитики.
- Spark GraphX — это API-интерфейс Spark для обработки графов для разработки и преобразования интерактивных графиков.
- Что такое ПРЯЖА? Требуется ли устанавливать Spark на все узлы кластера YARN?
Yarn — это центральная платформа управления ресурсами в Spark. Это позволяет выполнять масштабируемые операции в кластере Spark. В то время как Spark — это инструмент обработки данных, YARN — это диспетчер распределенных контейнеров. Точно так же, как Hadoop MapReduce может работать на YARN, Spark тоже может работать на YARN.
Нет необходимости устанавливать Spark на все узлы кластера YARN, потому что Spark может выполняться поверх YARN — он работает независимо от его установки. Он также включает в себя различные конфигурации для запуска в YARN, такие как мастер, очередь, режим развертывания, память драйвера, память исполнителя и ядра исполнителя.
- Что такое Catalyst Framework?
Catalyst framework — это уникальный фреймворк оптимизации в Spark SQL. Основная цель среды катализатора — позволить Spark автоматически преобразовывать SQL-запросы, добавляя новые оптимизации для разработки более быстрой системы обработки.
- Какие существуют типы менеджеров кластеров в Spark?
Платформа Spark состоит из трех типов менеджеров кластеров:
- Автономный — основной менеджер, используемый для настройки кластера.
- Apache Mesos — встроенный универсальный диспетчер кластеров Spark, который также может запускать Hadoop MapReduce и другие приложения.
- Yarn — менеджер кластера для управления ресурсами в Hadoop.
- Что такое рабочий узел?
Рабочий узел является «ведомым узлом» по отношению к главному узлу. Это относится к любому узлу, который может запускать код приложения в кластере. Таким образом, главный узел назначает работу рабочим узлам, которые выполняют назначенные задачи. Рабочие узлы обрабатывают данные, хранящиеся в них, и затем отчитываются перед главным узлом.

- Что такое Spark Executor?
Spark Executor — это процесс, который выполняет вычисления и сохраняет данные в рабочем узле. Каждый раз, когда SparkContext подключается к диспетчеру кластера, он получает Executor на узлах внутри кластера. Эти исполнители выполняют окончательные задачи, назначенные им SparkContext.
- .Паркет вариант №
Файл Parquet — это файл столбцового формата, который позволяет Spark SQL выполнять как операции чтения, так и записи. Использование паркетного файла (столбчатый формат) имеет много преимуществ:
- Колоночный формат хранения занимает меньше места.
- Формат хранения столбцов позволяет контролировать операции ввода-вывода.
- Это позволяет вам легко получить доступ к определенным столбцам.
- Он следует кодированию, специфичному для типа, и предоставляет более обобщенные данные.
Вот мы и поместили вас в Spark. Эти 15 основных концепций Spark помогут вам начать работу со Spark.
Если вам интересно узнать больше о больших данных, ознакомьтесь с нашей программой PG Diploma в области разработки программного обеспечения со специализацией в области больших данных, которая предназначена для работающих профессионалов и включает более 7 тематических исследований и проектов, охватывает 14 языков и инструментов программирования, практические занятия. семинары, более 400 часов интенсивного обучения и помощь в трудоустройстве в ведущих фирмах.
Ознакомьтесь с другими нашими курсами по программной инженерии на upGrad.