Внезапное изменение производительности приложения Spark Streaming через 3 часа - PullRequest
0 голосов
/ 15 мая 2019

Приложение My Spark обрабатывает сообщения от Кафки и записывает их в 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

...