2017-09-03 37 views
1

我使用spark來執行map-reduce作業,但我遇到的一個問題是,當一個工作人員完成其任務份額並且其他工作人員將任務列入其任務列表中時,空閒工作人員只是閒置。 Ignite支持作業竊取,因此當工作人員處於空閒狀態時,可以從其他工作人員獲取任務隊列。Ignite上的Spark是否使用Ignite的作業竊取?

https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/spi/collision/jobstealing/JobStealingCollisionSpi.html

IgniteRDD是在Ignite集羣上運行的火花RDD的實現。我想知道是否我所有的spark RDD map reduce代碼都保持不變,但將其設置爲具有作業竊取算法設置的點火羣集,並將Spark JavaRDD更改爲IgniteRDD,這樣它是否會尊重作業竊取設置,還是會與舊作相同爲工作者算法啓動靜態分區。

我試過搜索,但還沒有確定的答案。另外,需要做大量的工作來獲得點燃的東西來測試,所以我想IDE首先要問。

回答

2

Collision SPI(JobStealingCollisionSpi作爲可用實現之一)在Apache Ignite環境中進行計算所需。你是對的,IgniteRDD提供了與老火花靜態分區相同的工作者算法。如果您確實需要「偷工減料」算法,則可以嘗試將應用程序移至Compute API。 Apache Ignite提供友好的API並允許進行微調。更多詳情你可以在那裏找到https://apacheignite.readme.io