Catalyst揭祕 Day6 Physical plan解析

Catalyst揭祕 Day6

Physical plan解析

物理計劃是Spark和Sparksql相對比而言的,由於SparkSql是在Spark core上的一個抽象,物理化就是變成RDD,是SparkSql和Spark core之間的銜接點。sql

Physical Plan也是Catalyst變成Spark做業的最後一個階段。大數據

生成SparkPlan

從代碼,咱們能夠看到SparkPlan的生成包含了兩個步驟,首先會調用SparkPlanner的plan方法,生成SparkPlan,調用prepareForExecution的execute方法,再進行一次加工。
Snip20160725_1
Snip20160725_2ui

SparkPlanner繼承自SparkStrategies,strategies是精髓。
Snip20160725_3spa

其執行在下面的plan方法,全部的strategies應用在plan上獲得的physicalPlan,這個方法返回一個Iterator。
Snip20160725_4繼承

修正SparkPlan

而在prepareForExecution中,咱們看到只是定了兩個規則,主要是執行計劃進行修正。
其中EnsureRequirements主要針對shuffle操做,確保先後的plan分區數兼容。
Snip20160725_6ip

執行SparkPlan

這些操做都是邏輯級別的,sparkplan最終都是調用execute方法生成RDD。rem

Snip20160725_7

欲知後事如何,且聽下回分解!

DT大數據天天晚上20:00YY頻道現場授課頻道68917580spark

相關文章
相關標籤/搜索