2016-12-14 79 views
5

我們有一個Spark應用程序,可以連續處理大量傳入作業。多個作業在多個線程上並行處理。Spark永遠不會完成作業和階段,JobProgressListener崩潰

在密集型工作負荷,在某些時候,我們就開始有這樣的警告:

16/12/14 21:04:03 WARN JobProgressListener: Task end for unknown stage 147379 
16/12/14 21:04:03 WARN JobProgressListener: Job completed for unknown job 64610 
16/12/14 21:04:04 WARN JobProgressListener: Task start for unknown stage 147405 
16/12/14 21:04:04 WARN JobProgressListener: Task end for unknown stage 147406 
16/12/14 21:04:04 WARN JobProgressListener: Job completed for unknown job 64622 

從開始,應用程序對中器的性能,大多數階段和喬布斯從未完成。在SparkUI上,我可以看到13000個待處理/活動作業。

我無法清楚地看到另一個異常,發生之前有更多的信息。也許這一個,但它涉及其它監聽:

16/12/14 21:03:54 ERROR LiveListenerBus: Dropping SparkListenerEvent because no remaining room in event queue. This likely means one of the SparkListeners is too slow and cannot keep up with the rate at which tasks are being started by the scheduler. 
16/12/14 21:03:54 WARN LiveListenerBus: Dropped 1 SparkListenerEvents since Thu Jan 01 01:00:00 CET 1970 

這是一個非常惱人的問題,因爲它不是一個明確的崩潰,或清除錯誤信息中,我們可以趕上來重新啓動應用程序。

UPDATE:星火2.0.2發生

  • 問題和Spark 2.1.1
  • 最有可能涉及到SPARK-18838

最深的是什麼錯誤,我會想到這個發生在大型配置上(一個大型的集羣會讓驅動更容易DDOS驅動),但事實並非如此。我們的羣集很小,唯一的特點是我們傾向於混合處理小文件和大文件,而小文件會生成很多快速完成的任務。

+0

你找到原因了嗎? –

回答

2

我可能已經找到了解決辦法:的spark.scheduler.listenerbus.eventqueue.size

改變價值(100000,而不是默認10000)似乎有幫助,但它可能只是推遲問題。

+0

Spark 1.4.1在這裏。增加此設置似乎會延遲此錯誤的發生。 :) – dannyman

相關問題