火花是如何將一個分區分配給執行者的。何時以及如何將火花分配給執行者
當我跑在火花殼以下行1個驅動器和第5個執行人:
> var data = sc.textFile("file") // auto generates 2 partitions
> data.count() // materialize partitions on two nodes
> data = data.repartition(10) // repartition data.count()
> data.count() // 10 partitions still on original 2 nodes
重新分區後,將10個分區仍然位於原始的兩個節點上(5分)。這看起來效率很低,因爲5個任務在包含分區的每個節點上重複運行,而不是在節點間均勻分佈。低效率對於在相同rdds上重複多次的迭代任務是最明顯的。
所以我的問題是,火花是如何決定哪個節點具有哪個分區的,有沒有辦法可以強制數據移動到其他節點?
你說的是兩個節點,但你有一個Executor,這沒什麼意義。他在談論什麼? –
對不起,這是一個錯字,剛剛編輯。感謝您指出 – Yituo
您是否遇到Sparks任務分配問題?或者這是一個普遍的問題?每個Executor有多少個內核? –