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...