一、DAG的總體圖spa
簡要說明(我的理解):hash
①當全部的RDD觸發action的時候,會生成一個DAGit
②stage是由DAG進行切分的,能夠理解stage是一個tasksetio
③DAG是根據寬依賴進行切分stage的,stage是由Driver進行提交的map
④stage是一個一個提交的,當前一個stage計算完成的時候,下一個stage纔會進行拉取計算im
經過hue頁面能夠看到一個stage包括幾個task任務總結
二、如何切分stageimg
DAG是根據寬依賴與窄依賴進行切分,通常來講,有shuffle的時候,就會切分前一個stage,也能夠是以寬依賴進行切分的co
①窄依賴:join
②寬依賴
③整體
總結:
①通常來講,reducebykey,groupbykey都是shuffle階段,要切分
②若是是jion的話,有兩種狀況,一種是groupby以後的,這種狀況是屬於窄依賴
另外一種是直接join,產生shuffle屬於寬依賴
③默認是以key的hashpartition進行分區,反正是shuffle階段就是要切分
④像map,flatMap,都是窄依賴