我们有一个火花流式传输作业,可以从Gnip API读取并将推文发送到Kafka群集。
使用Cloudera Manager安装Kafka群集。
有时,cloudera管理器会为某些Kafka节点显示错误的运行状况消息。不良健康消息与NTP服务有关。某些节点突然与NTP服务器不同步。
一旦发生这种情况,Spark流媒体作业就会停滞不前,很多作业都会在没有处理的情况下排队等待很长时间。
为什么Kafka节点与NTP服务器的同步会影响火花流作业中的Kafka生产者?
答案 0 :(得分:2)
每个分区都有其在Kafka经纪人中的领导者和追随者,Kafka通过它们提供容错能力。此机制基于ZooKeeper,它使用NTP服务。
如果您使用默认配置,领导者将收到您的数据,并尽量写入关注者。在将数据写入每个关注者之前,它不会响应成功消息。所以你的Spark应用程序会阻塞。
您还可以更改Kafka配置,以便在领导者收到数据时立即响应,或在领导者将数据写入磁盘时立即响应。
您可以在Kafka documents中找到更多信息。