Изпитвам проблем, който трябва да започне да се превърне в искрена струна на наистина голяма тема за кафка, има около 150 милиона данни в тази тема и темата се разраства бързо.
Когато се опитах да стартирам искри и да четаданни от началото на тази тема, като зададете параметър kafka ("auto.offset.reset" -> "най-малък"), той винаги се опитва да завърши всичките 150 милиона обработка на данни в първия пакет и да върне "java.lang.OutOfMemoryError: Превишен е лимитът на GC за режима на натоварване. Въпреки това не е много изчисление в тази ап искра поток все пак.
Мога ли да имам начин да обработя историческите данни в тази тема в първите няколко партиди, но не всички в първата партида?
Букет от благодарности предварително! Джеймс
Отговори:
1 за отговор № 1Можете да контролирате скоростта на четене на искровата кафка при следваща конфигурация на искри spark.streaming.kafka.maxRatePerPartition
.
Можете да конфигурирате това, като посочите колко документа искате да обработите за всяка партида.
sparkConf.set("spark.streaming.kafka.maxRatePerPartition","<docs-count>")
Над процеса на конфигуриране <docs-count>*<batch_interval>
записи на партида.
Можете да намерите повече информация за по-горе config тук.