2017-04-26 40 views
1

我正在考慮Spark執行程序的靜態分配。 紗線上的Spark是否考慮啓動執行程序時在Spark應用程序中使用的原始輸入數據集的數據局部性。在啓動執行程序時,Spark上的紗線處理數據位置

如果確實如此,它會如何做,因爲火花執行器在火花上下文被初始化時被請求和分配。在Spark應用程序中可能有多個原始輸入數據集可能在物理上駐留在許多不同的數據節點上。我們無法在所有這些節點上運行執行程序。

我知道spark執行器上的任務調度時(如提到的https://spark.apache.org/docs/latest/tuning.html#data-locality),需要處理數據局部性。

回答

0

你在說

火花負責數據局部性的,而在執行

調度任務時,紗啓動一個執行者,它不知道數據所在的位置是正確的。因此,在理想情況下,您可以在羣集的所有節點上啓動執行程序。但是,更現實的情況是,您只能在一部分節點上啓動。

現在,這並不一定是壞事,因爲HDFS本質上支持冗餘,這意味着在火花請求數據的節點上存在數據的副本。

相關問題