问题描述
我在Spark Streaming 2.2.1作业中有16个接收器。一段时间后,一些接收器正在处理越来越少的记录,最终仅每秒处理一个记录。该行为可以在屏幕截图上看到:
虽然我知道根本原因很难发现而且不明显,但是有什么方法可以进一步调试此问题?目前,我不知道从哪里开始挖掘。可能与背压有关吗?
火花流媒体属性:
<h4><img style="border: 1px solid black; align: right;" title="" src="sys_attachment.do?sys_id=00ee33cbdb1b9c507261e03cd396190b" alt="" width="204" align="right" border="1" hspace="" vspace="" /></h4>
<h4><strong>4. Entrez votre mot de passe.</strong></h4>
<ul style="list-style-type: disc; list-style-position: inside;">
<li>Puis,cliquez sur "Suivant".</li>
</ul>
解决方法
似乎问题在运行30分钟后开始显现。我认为背压可能是一个原因。根据此article:
激活背压后,驱动程序将监视当前的批处理调度延迟和处理时间,并动态调整接收器的最大速率。可以在接收器日志中验证新速率限制的通信:
2016-12-06 08:27:02,572信息org.apache.spark.streaming.receiver.ReceiverSupervisorImpl收到了新的速率限制:51。
这是我建议您尝试的方法:
- 检查接收器日志以查看是否触发了backpress。
- 检查您的流接收器,看是否有任何错误。
- 检查YARN资源管理器的资源利用率。
- 调整Spark参数以查看是否有区别。