Я строю кластер с использованием CDH5.14.2, включает в себя 5 узлов, каждый узел имеет 130G памяти и 40 ядер процессора.Я создал приложение для потокового воспроизведения, чтобы читать из нескольких тем кафки, около 10 тем кафки и отдельно собирать сообщения кафки.И, наконец, сохраните смещение кафки в зоопарке.В конце концов я обнаружил, что для обработки сообщения кафки требуется много времени.Сообщение kafka не искажено, и я обнаружил, что искра занимает много времени для чтения из kafka.
My code script:
// build input steeam from kafka topic
JavaInputDStream<ConsumerRecord<String, String>> stream1 = MyKafkaUtils.
buildInputStream(KafkaConfig.kafkaFlowGrouppId, topic1, ssc);
JavaInputDStream<ConsumerRecord<String, String>> stream2 = MyKafkaUtils.
buildInputStream(KafkaConfig.kafkaFlowGrouppId, topic2, ssc);
JavaInputDStream<ConsumerRecord<String, String>> stream3 = MyKafkaUtils.
buildInputStream(KafkaConfig.kafkaFlowGrouppId, topic3, ssc);
...
// aggregate kafka message use spark sql
result1 = process(stream1);
result2 = process(stream2);
result3 = process(stream3);
...
// write result to kafka kafka
writeToKafka(result1);
writeToKafka(result2);
writeToKafka(result3);
// save offset to zookeeper
saveOffset(stream1);
saveOffset(stream2);
saveOffset(stream3);
информация о веб-интерфейсе spark: введите описание изображения здесь