1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yangdechao_admin-guage-notes

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
15大数据技术知识点总结.md 7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 24.06.2025 02:12 0782333

1. Как Flink отличается от традиционного Spark?

Flink является стандартным реального времени обработчика, основанным на событийной модели. В то время как Spark Streaming использует модель микробатчей (Micro-Batch).

1. Архитектурная модель

  • В Spark Streaming основные роли в процессе выполнения включают: Master, Worker, Driver, Executor.
  • В Flink основные компоненты в процессе выполнения включают: Jobmanager, Taskmanager и Slot.

2. Расписание задач

  • В Spark Streaming непрерывно создаются маленькие батчи данных, строятся направленные ациклические графы (DAG), Spark Streaming последовательно создает DStreamGraph, JobGenerator и JobScheduler.
  • В Flink на основе предоставленного пользователем кода создается StreamGraph, который затем оптимизируется до JobGraph и передается JobManager для обработки. JobManager использует JobGraph для создания ExecutionGraph, который является ключевой структурой данных для расписания задач в Flink. JobManager использует ExecutionGraph для расписания задач.

3. Механизмы времени

  • Поддержка механизмов времени в Spark Streaming ограничена, поддерживаются только обработочные временные метки.
  • Flink поддерживает три определения времени для потоковых программ: обработочное время, событийное время и введенное время. Также поддерживается механизм watermark для обработки запаздывающих данных.

4. Механизмы отказоустойчивости- Для задач Spark Streaming можно настроить checkpoint, при возникновении сбоев и перезапусках можно восстановиться с последнего checkpoint, однако это поведение может привести к повторному обработанию данных, но не обеспечивает семантику "ровно один раз".

  • Flink использует двухфазный протокол коммита для решения этой проблемы.

5. Объединение с таблицами и асинхронное ввод-вывод

Structured Streaming не поддерживает прямое объединение с таблицами, но можно использовать map, flatMap и udf для реализации этой функциональности, все эти операторы являются синхронными и не поддерживают асинхронное ввод-вывод. Однако Structured Streaming поддерживает прямое объединение со статическими наборами данных, что также помогает реализовать объединение с таблицами, конечно, таблицы должны быть неизменяемыми.

Flink поддерживает объединение с таблицами, кроме map и flatMap, Flink имеет асинхронные операторы ввод-вывода, которые могут использоваться для реализации таблиц и повышения производительности.

2. Опишите архитектуру выполнения Flink

Здесь находится изображение

При запуске Flink-кластера, сначала запускается JobManager и один или несколько TaskManager. Задачи отправляются клиентом.1. JobManager, который затем распределяет задачи на различные TaskManager для выполнения. Затем TaskManager отправляют данные обратно в JobManager в виде пульса и статистической информации. TaskManager между собой передают данные в виде потока. Все три являются независимыми процессами JVM.

1.1. Клиент (Client) представляет собой сущность, которая отправляет задачу (Job), и может находиться на любой машине (взаимодействие с окружением JobManager возможно). После отправки задачи клиент может завершить процесс (для потоковых задач), либо продолжить работу и ждать возврата результата.1.2. JobManager отвечает за распределение задач и координацию задач для выполнения контрольных точек (checkpoints), что очень похоже на роль Nimbus в Storm. Получив задачу и JAR-файлы от клиента, он создает оптимизированный план выполнения и распределяет задачи на TaskManager для выполнения.

1.3. При запуске TaskManager устанавливается количество слотов (slots), каждый из которых может запустить одну задачу, являющуюся потоком. Получив задачи от JobManager, TaskManager запускает их и устанавливает соединение Netty с предыдущими компонентами, чтобы получать и обрабатывать данные.

3. Какие существуют режимы развертывания Flink?

Flink может быть развернут несколькими способами, включая standalone режим, YARN, Mesos, Kubernetes, Docker, AWS, Google Compute Engine, MAPR и другие.

4. Какие виды окон (window) используются в Flink?

Здесь должна быть картинка

Здесь должна быть картинка

Здесь должна быть картинка

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/yangdechao_admin-guage-notes.git
git@api.gitlife.ru:oschina-mirror/yangdechao_admin-guage-notes.git
oschina-mirror
yangdechao_admin-guage-notes
yangdechao_admin-guage-notes
master