Это изображение плана Flink, которое появляется на панели управления, когда я развертываю свою работу. Как видите, связи между операторами помечены как FORWARD/HASH и т. Д. К чему они относятся? Когда что-то называется HASH, а когда что-то называется FORWARD?

enter image description here

0
Harshith Bolar 25 Янв 2019 в 10:59

2 ответа

Лучший ответ

Прежде всего, как мы знаем, задание потоковой передачи Flink будет разделено на несколько задач в соответствии с его графом заданий (или DAG). FORWARD / HASH - это разделитель между задачами восходящего и нисходящего потока, который используется для разделения данных на входе.

Что такое форвард? А когда происходит форвард?

Это означает, что разделитель будет перенаправлять элементы только локально выполняющимся нижестоящим задачам. Forward является разделителем по умолчанию, если вы не указываете какой-либо разделитель напрямую или используете функции с разделителем, такие как reblance / keyBy.

Что такое хеш? И когда происходит хеширование?

Это секционер, который разделяет записи на основе индекса группы ключей. Это происходит, когда вы вызываете keyBy.

2
Jiayi Liao 25 Янв 2019 в 14:25

См. Приведенную ниже диаграмму вакансий (Обнаружение мошенничества с помощью Flink).

job graph

Соединение FORWARD означает, что все данные, потребляемые одним из параллельных экземпляров оператора Source, передаются ровно одному экземпляру последующего оператора . Это также указывает на одинаковый уровень параллелизма двух связанных операторов.

Forward

Соединение HASH между DynamicKeyFunction и DynamicAlertFunction означает, что для каждого сообщения вычисляется хэш-код, и сообщения равномерно распределяются между доступными параллельными экземплярами следующего оператора. Такое соединение необходимо явно «запросить» у Flink с помощью keyBy .

HASH

Распределение REBALANCE вызывается либо явным вызовом rebalance (), либо изменением параллелизма (12 -> 1 в случае графа заданий на рисунке 2) . Вызов rebalance () вызывает перераспределение данных в циклическом режиме и может помочь уменьшить перекос данных в определенных сценариях.

REBALANCE

График задания по обнаружению мошенничества на рисунке 2 содержит дополнительный источник данных: Источник правил. Тоже потребляет от Кафки. Правила "подмешиваются" в основной поток данных обработки через канал РАССЫЛКА . В отличие от других методов передачи данных между операторами, таких как пересылка, хеширование или ребалансировка, которые делают каждое сообщение доступным для обработки только в одном из параллельных экземпляров принимающего оператора, широковещательная передача делает каждое сообщение доступным на входе всех параллельные экземпляры оператора, к которому подключен широковещательный поток. Это делает широковещательную рассылку применимой к широкому кругу задач, которые должны влиять на обработку всех сообщений, независимо от их ключа или исходного раздела. BROADCAST

См. документ.

2
Arjun 26 Мар 2020 в 17:43