0

我们在Google云平台中使用了Bitnami Kafka 0.8.2 + spark 1.5.2。我们的火花流传输作业(消费者)未收到发送到特定主题的所有消息。它收到约50条消息中的1条(添加了作业流中的日志并被识别)。我们在卡夫卡日志中没有看到任何错误。无法从卡夫卡层进一步调试。控制台消费者显示在控制台中接收到INPUT主题。它没有达到spark-kafka整合流。任何想法如何调试这个问题。另一个主题在相同的设置下工作正常。 再次尝试使用spark 1.3.0,kafka 0.8.1.1这也是同样的问题。所有这些工作都在我们的本地实验室服务器上正常工作谷歌云平台中的Spark流kafka集成问题

+0

您是否使用KafkaUtils.createDirectStream()来读取来自Kafka的消息?在您向Kafka发布任何消息之前,火花传输工作是否开始工作? – JuliaLi

+0

是的,我们发现了这个问题。它与谷歌cpu中的线程行为差异有关。我们在使用groupByKey([numTasks])的作业中有一个转换映射/缩减行。 NumTasks被定义为10 - 在本地服务器上工作正常。删除Numtasks使用默认,并在谷歌平台开始工作。但是我们仍然有一些性能问题。计划更改groupbykey以减少密钥。 – vimeghan

回答

0

实际的根本原因是 - apache cassandra与spark-cassandra连接器不兼容。虽然我们使用了一个对齐的连接器和apache cassandra版本,但一些cassandra通信却陷入困境。大多数时候,cassandra节点的cpu使用率都在98%以上。将cassandra更改为Datastax cassandra版本 - 并且....它完美地工作了!无需更改代码。