使用集群執行spark-sql計算 初始化大寬表 近二十年所有資料!
1700個tasks(計算10min + 寫入30min)
計算兩年資料量:130g
計算三年資料量:190g
平均每年資料量:60g+(2000萬條)
提交資源申請:
每個executor申請記憶體為16g
--executor-memory 12g \
--conf spark.yarn.executor.memoryoverhead=4096m \
由於進行repartition(10)操作
所以該集群最大處理資料量為10*16g =160g(兩年多資料)
否則報錯:
executorlostfailure (executor 37 exited caused by one of the running tasks) reason: container killed by yarn for exceeding memory limits. 16.1 gb of 16 gb physical memory used. consider boosting spark.yarn.executor.memoryoverhead.
Spark中Task數量的分析
開始 先說明一下spark作業的幾個核心概念 job 作業 spark根據行動操作觸發提交作業,以行動操作將我們的 切分為多個job。stage 排程階段 每個job中,又會根據寬依賴將job劃分為多個stage 包括shufflemapstage和resultstage task 任務 真正執行計...
Spark Executor 執行Task的過程
前言 前面分析了task scheduler劃分task的過程,task在task schedulerimpl類中被包裝成stagetasksets,然後由driverendpoint傳送,最後由coarsegrainedschedulerbackend序列化並啟動executor。現在開始分析ex...
如何啟動並等待 Task 執行
task.run裡邊可以搭配async,所有由task.run啟動起來的 task 所組成的陣列允許被whenall等待,呼叫執行緒 如ui執行緒 不會阻塞 listtaskarray new list 3 taskarray.add task.run async taskarray.add tas...