SparkStreaming跑着跑着会变慢!
我们的任务是每秒解析1800条数据,而每天早上我去查看解析速度的时候发现每秒只解析了500条左右!
看了下Yarn集群的运行日志,我发现每天晚上凌晨的时候都有一个定时的job在运行!
这导致本来集群资源就不足!3个计算节点每个节点16核128G
,一共才48核。我们的SparkStreaming任务 Repartition了一次(提高并发量),这样则Repartition需要CPU 而没有空闲的CPU可用!导致解析速度直线下降!
而当定时的MRJob跑完后,SparkStreaming会重新再次申请CPU,慢慢慢慢的一点点的将积压的数据消费完,解析速度也会提上来的!但是如果定时的Job跑了一个小时,我们的SparkStreamingJob积压了好多好多Job要处理,那么我们的流处理则会一直Delay
!