Бег Флинк в пряже
Я бегу Flink(1.4.2) на пряже. Я использую Flink Yarn Client для отправки работы в Yarn Cluster.
Предположим, у меня есть TM с 4 слотами, и я развернул задание Flink с параллелизмом =4 с 2 контейнерами - 1 JM и 1 TM. Каждый параллельный экземпляр будет развернут в одном слоте задач каждый в TM (весь конвейер заданий работает на слот).
Мои задания выполняют соединение (соединение с временным окном SQL в потоке без ключа), и они буферизуют последние 3 часа данных. Согласно документам Flink the separate threads running in different task slot share data sets and data structures, thus reducing the per-task overhead.
Мой вопрос заключается в том, будут ли эти потоки, работающие в другом слоте задач, совместно использовать эти данные, буферизованные для объединения. Какие все данные распределяются между этими потоками.
редактировать
Образец запроса -
SELECT R.order_id, S.order.restaurant_id FROM awz_s3_stream1 R INNER JOIN awz_s3_stream2 S ON CAST(R.order_id AS VARCHAR) = S.order_id AND R.proctime BETWEEN S.proctime - INTERVAL '2' HOUR AND S.proctime + INTERVAL '2' HOUR GROUP BY HOP(S.proctime, INTERVAL '2' MINUTE, INTERVAL '1' HOUR), S.
порядок.restaurant_id
1 ответ
Каждый Task
получит собственный несвязанный раздел входных данных. Что разделяют Tasks
работает на том же TaskManager
это сервисы и управляющие структуры данных, такие как сетевой стек, сетевые соединения, конечные точки RPC, пульс между распределенными компонентами и т. д.