2017-02-22 63 views
0

我正在kafka運行一個spark直接流,我需要運行許多併發作業以便及時處理所有數據。在spark中,您可以將spark.streaming.concurrentJobs設置爲要運行的多個併發作業。Spark Direct Stream併發作業限制

我想知道的是確定在給定環境中可以運行多少個並行作業的邏輯方法。對於我公司的隱私問題,我無法告訴你我擁有的規格,但我想知道哪些規格與確定限制有關,爲什麼?

當然,替代方案是我可以繼續增加和測試,然後根據結果進行調整,但我想要一個更合理的方法,並且我想實際瞭解什麼決定了限制以及爲什麼。

回答

1

要測試不同數量的併發作業並查看總體執行時間是最可靠的方法。然而,我想最好的數字大致等於Runtime.getRuntime().availableProcessors();

所以我的建議是從可用處理器的數量開始,然後增加和減少1,2和3.然後製作一個圖表(執行時間與工作數量相比),你會看到最佳的工作數量。

+0

我用你的建議打印出'Runtime.getRuntime()。availableProcessors();'。我收到的數字遠遠高於我需要的數字,但知道我的上限是很好的。經過無數測試後,我找到了一個合理的數字。謝謝。 – user3124181