更新时间:2022-02-22 GMT+08:00

运行Spark Streaming任务参数调优的注意事项

问题

运行Spark Streaming任务时,随着executor个数的增长,数据处理性能没有明显提升,对于参数调优有哪些注意事项?

回答

在executor核数等于1的情况下,遵循以下规则对调优Spark Streaming运行参数有所帮助。

  • Spark任务处理速度和Kafka上partition个数有关,当partition个数小于给定executor个数时,实际使用的executor个数和partition个数相同,其余的将会被空闲。所以应该使得executor个数小于或者等于partition个数。
  • 当Kafka上不同partition数据有倾斜时,数据较多的partition对应的executor将成为数据处理的瓶颈,所以在执行Producer程序时,数据平均发送到每个partition可以提升处理的速度。
  • 在partition数据均匀分布的情况下,同时提高partition和executor个数,将会提升Spark处理速度(当partition个数和executor个数保持一致时,处理速度是最快的)。
  • 在partition数据均匀分布的情况下,尽量保持partition个数是executor个数的整数倍,这样将会使资源得到合理利用。