3小时后,Spark Streaming应用程序的性能突然改变

时间:2019-05-14 23:01:35

标签: apache-spark apache-spark-sql spark-streaming spark-cassandra-connector spark-streaming-kafka

我的Spark应用程序处理来自Kafka的消息并将其写入Cassandra。 3小时后,处理速度几乎突然改变。如果批次大小为10000,则初始速率很好,但3小时后下降了一半。如果批次大小为3000,则初始速率会很低,但3小时后它会增加百分之几。

到目前为止我发现的东西:

  1. 这不是内存泄漏问题,GC时间约为1%,内存占用较低。
  2. 这不是连接泄漏问题:如果我使用小批量,速率会增加。
  3. 当应用程序变慢时,执行者将大部分时间用在代码生成的方法SpecificPredicate.EqualTo_4中。我不明白为什么这种方法会成为瓶颈。
  4. 当我设置spark.sql.autoBroadcastJoinThreshold =“ -1”时,费率在10小时后下降。

我在多次连接中广泛使用Spark SQL,因此我的理论是Spark Catalyst应用了一些“优化”。

rate suddenly goes down a little rate boost after 3 hours if batches are small

0 个答案:

没有答案