我使用以下代碼運行應用程序。我不明白爲什麼只有1個執行者在使用,即使我有3個。當我嘗試增加範圍時,我的工作失敗,導致任務管理器失去執行者。 在總結中,我看到了shuffle寫入的值,但shuffle讀取值爲0(可能導致所有數據都在一個節點上,並且不需要執行任何shuffle讀取操作)。Spark應用程序只使用1個執行程序
val rdd: RDD[(Int, Int)] = sc.parallelize((1 to 10000000).map(k => (k -> 1)).toSeq)
val rdd2= rdd.sortByKeyWithPartition(partitioner = partitioner)
val sorted = rdd2.map((_._1))
val count_sorted = sorted.collect()
編輯:我增加了執行器和驅動程序的內存和內核。我也將執行者的數量從4改爲了1。這似乎有所幫助。我現在看到在每個節點上洗牌讀/寫。
您是否在集羣模式下獨立運行?你是在本地運行還是在某個集羣上運行? – Metropolis
我正在集羣模式下運行。 – user1745995