回顧一下,在前面幾章中,就sparkSQL1.1.0基本概念、運行架構、基本操做和實用工具作了基本介紹。git
基本概念:github
- SchemaRDD
- Rule
- Tree
- LogicPlan
- Parser
- Analyzer
- Optimizer
- SparkPlan
- 運行架構:
- sqlContext運行架構
- hiveContext運行架構
- 基本操做
- 原生RDD的操做
- parquet文件的操做
- json文件的操做
- hive數據的操做
- 和其餘spark組件混合使用
- 實用工具
- hive/console的操做
- CLI的配置和操做
- ThriftServer的配置和操做
因爲時間倉促,有不少地方來不及詳細,特別是第三章和第九章;另外還有一些新的特性沒有介紹,好比列存儲的實現過程、CODEGEN的源碼分析等,將在後續的版本逐步完善。sql
從整體上來講,因爲CLI的引入,使得sparkSQL1.1.0在易用性方面獲得了極大地提升;而ThriftServer的引入,方便了開發者對基 於SparkSQL的應用程序開發;hive/console的引入,極大地方面了開發者對sparkSQL源碼的修改和調試;還有json數據的引入, 不但擴充了sparkSQL的數據來源,同時對嵌套數據開始作了嘗試。從Spark1.1.0開始,sparkSQL逐漸開始像是一個產品了,而不像 spark1.0.0,感受像是一個測試品。固然,因爲sparkSQL項目的啓動時間比較晚,到如今爲止還不到一年,在不少方面還存在着不足:apache
- SQL-92語法的支持度,sparkSQL使用了一個簡單的SQL語法解析器,對於一些複雜的語法沒辦法解析,好比三個表進行join的時候,不能一次性join,而要經過兩兩join後再join一次;
- cost model ,雖然sparkSQL的catalyst在最初設計的時候就考慮到了cost model,但在如今的版本尚未引入。咱們相信,將來引入cost model以後,sparkSQL的性能將獲得進一步地提高;
- 併發性能,從impala獲得的信息,sparkSQL的併發性能和impala相比,仍是有很多的差距,這將是sparkSQL的一個發展方向。
匆匆忙忙中,sparkSQL1.1入門初版就先在這裏結束吧。特別感謝一下網站或博客提供了相關的知識:json
www.databricks.com架構
spark.apache.org併發
github.com/apache/spark工具
http://spark-summit.org/2014oop
徽滬一郎 源碼分析
OopsOutOfMemory
張包峯的博客