Я думал, что при параллелизме 16 должно быть строгое распределение по всем подзадачамJAVA

Программисты JAVA общаются здесь
Anonymous
Я думал, что при параллелизме 16 должно быть строгое распределение по всем подзадачам

Сообщение Anonymous »

У меня есть приложение Flink, в котором я использую TumblingEventTimeWindows и функцию обработки

Код: Выделить всё

DataStream processedEvents = rawEvents
.keyBy(eventMap -> {
return calculateKey(eventMap.get("id").toString());
})
.window(TumblingEventTimeWindows.of(Duration.ofSeconds(30)))
.allowedLateness(Duration.ofSeconds(3))
.process(new CustomProcessWindowFunction())
.setParallelism(16);
calculateKey — всегда возвращает число от 0 до 16. Я думал, что при параллелизме 16 должно быть строгое распределение по всем подзадачам, но вместо этого получаю 5 простаивающих задач и несколько перегруженных
calculateKey — всегда возвращает число от 0 до 16. Я думал, что при параллелизме 16 должно быть строгое распределение по всем подзадачам, но вместо этого получаю 5 простаивающих задач и несколько перегруженных
calculateKey p>
Пробовал добавлять разбиение, менять хэш — ни один из подходов не дал результатов.
Есть ли способ сделать так, чтобы каждая подзадача обрабатывала не более одного ключа?Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/790 ... -across-al

Вернуться в «JAVA»