Spark集群執行與優化

2022-03-09 01:46:44 字數 564 閱讀 7019

spark集群上的執行

spark集群採用的是主/從結構,主是驅動器節點driver,其他是工作節點executor,之間通過集群管理器來連線。

驅動器在spark應用有兩個職責:

執行器程序兩大作用:負責執行組成spark應用的任務,並把結果返還驅動器程序;通過自身的塊管理器(block manager)為使用者程式中要求快取的rdd提供記憶體儲存,進行記憶體計算。

spark優化

當呼叫行動操作,會向上回溯,訪問父節點,父節點的父節點,然後執行轉化操作。

spark提供了兩種方法來對操作的並行度進行調優,第一種方法是在資料混洗操作時,使用引數的方式為混洗後的rdd指定並行度,第二種方法時對於任務已有的rdd,可以進行重新分割槽來獲取更多或更少的分割槽數。

當spark需要通過網路傳輸資料,或將資料溢寫到磁碟上,就需要資料序列化為二進位制格式。序列化會在混洗操作時發生。

當資料混洗操作時,spark會建立出一些中間快取區來儲存資料混洗的部分快取資料。使用者也可以申請記憶體空間。預設情況下60%記憶體空間給rdd,20%給資料混洗,20%給使用者。

如果分割槽空間不夠,舊分割槽會被刪除或寫入磁碟。

spark集群中執行SparkPi的示例

1 sparkpi.scala原始碼 官網例子 import scala.math.random import org.apache.spark.object sparkpi reduce println pi is roughly 4.0 count n spark.stop 2 在intelli...

Spark優化 推測執行機制

spark job中,乙個stage什麼時候完成,取決於stage下最後乙個task的完成時間。task的完成時間也被很多因素影響,比如partition的分配,executor的資源使用情況,host的執行狀態,集群網路等等。很多情況下因為執行環境導致的task跑的過慢,或者直接卡死,讓task可...

spark集群模式

第一種 val conf sparkconf new sparkconf conf.setmaster spark spark1 7077 如果這樣寫的話 直接就在集群上面執行了 idea種 使用spark submit不用指定 master了就 spark submit class day06.s...