/ / cómo procesar mejor la enorme historia de datos en el tema kafka mediante el uso de chispa de flujo - apache-kafka, chispa de flujo

cómo procesar mejor la enorme historia de datos en el tema kafka mediante el uso de la transmisión de chispa - apache-kafka, la transmisión de chispa

Estoy experimentando un problema para iniciar la transmisión de chispas en un tema kafka realmente grande, ya hay alrededor de 150 millones de datos en este tema y el tema está creciendo súper rápido.

Cuando traté de iniciar la transmisión de chispas y leerdatos del principio de este tema configurando el parámetro kafka ("auto.offset.reset" -> "el más pequeño"), siempre intenta finalizar el procesamiento de todos los 150 millones de datos en el primer lote y devolver un "java.lang.OutOfMemoryError: El límite de sobrecarga del GC superó "error. Sin embargo, no hay mucho cálculo en esta aplicación de flujo de chispas.

¿Puedo tener una manera de procesar los datos del historial en este tema en los primeros lotes pero no todos en el primer lote?

Muchas gracias de antemano! James

Respuestas

1 para la respuesta № 1

Puede controlar la velocidad de lectura de la entrada de kafka con la siguiente configuración de chispa spark.streaming.kafka.maxRatePerPartition .

Puede configurarlo dando la cantidad de documentos que desea procesar por lote.

sparkConf.set("spark.streaming.kafka.maxRatePerPartition","<docs-count>")

Por encima del proceso de configuración <docs-count>*<batch_interval> Registros por lote.

Puedes encontrar más información sobre la configuración anterior aquí.