График выполнения и цепочка задач
Программа и поток данных (DataFlow)
Все программы выполнения flink можно условно разделить на три части:
-
Источник отвечает за чтение источника данных
-
Преобразование использует различные операторы для обработки
-
Сток отвечает за вывод
Во время выполнения программы, работающие на Flink, отображаются в «логические потоки данных», которые включают содержит эти три части. Каждый поток данных начинается с одного или нескольких источников и заканчивается одним или несколькими приемниками. пучок. поток данных подобен произвольному направленному ациклическому графу (DAG). В большинстве случаев конвертация в программе Между операциями (преобразованиями) и операторами (операторами) в потоке данных существует однозначное соответствие, но иногда преобразование может соответствовать нескольким операторам.
График выполнения
- Граф выполнения во Flink можно разделить на четыре слоя: StreamGraph -> JobGraph > ExecutionGraph -> Граф физического выполнения.
форма передачи данных
- Один к одному: Stream поддерживает порядок разделов и элементов (например, между источником и картой). Это означает, что количество и порядок элементов, видимых подзадачей оператора карты, совпадают с количеством и порядком элементов, созданных подзадачей оператора-источника. Такие операторы, как map, fliter и flatMap, являются взаимно однозначными соответствиями.
- Перераспределение: раздел потока изменится. Подзадачи каждого оператора отправляют данные в разные целевые задачи в соответствии с выбранным преобразованием. Например, keyBy перераспределяет на основе hashCode, а широковещательная рассылка и перебалансировка перераспределяются случайным образом.Все эти операторы вызывают процесс перераспределения, аналогичный процессу перемешивания в Spark.
Цепочки операторов
состояние:
- одинаковая степень параллелизма
- one to one
Эта статья воспроизведена в моем личном блогеОперационная архитектура Flink (2)следитьCC 4.0 BY-SA Соглашение об авторском праве