Код: Выделить всё
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 p>
Пробовал добавлять разбиение, менять хэш — ни один из подходов не дал результатов.
Есть ли способ сделать так, чтобы каждая подзадача обрабатывала не более одного ключа?Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/790 ... -across-al