`listenerBus.stop()` should be moved all the way to the end of `sc.stop()`, in case there are listeners that block for a long time and prevent other components of Spark to stop. Perhaps `eventLogger.foreach(_.stop())` should go right after the listener bus.