SparkStreaming 性能调优
在开发Spark Streaming应用程序时,要结合集群中各节点的配置情况尽可能地提高数据处理的实时性。在调优的过程中,一方面要尽可能利用集群资源来减少每个批处理的时间;另一方面要确保接收到的数据能及时处理掉。 运行时间优化 设置合理的批处理时间和窗口大小 Spark Streaming中作业之间通常存在依赖关系,后面的作业必须确保前面的作业执行结束后才能提交,若前面的作业的执行时间超过了设置的批处理时间间隔,那么后续的作业将无法按时提交执行,造成作业的堵塞。也就是说若想Spark Streaming应用程序稳定地在集群中运行,对于接收到的数据必须尽快处理掉。例如若设定批处理时间为1秒钟,那么系统每1秒钟生成一个RDD,如果系统计算一个RDD的时间大于1秒,那么当前的RDD还没来得及处理,后续的RDD已经提交上来在等待处理了,这就产生了堵塞。因此需要设置一个合理的批处理时间间隔以确保作业能够在这个批处理时间间隔时间内结束。许多实验数据表明,500毫秒对大多Spark Streaming应用而言是较好的批处理时间间隔。 类似地,对于窗口操作,滑动时间间隔对于性能也有很大的影响。当单批次...