spark技術熱點問題互動問答

決勝雲計算大數據時代」

 Spark亞太研究院100期公益大講堂 【第4期互動問答分享】

 Q1:Spark SQL和Shark有啥區別?git

         Shark須要依賴於Hadoop上Hive去作SQL語句的解析和分析Spark,而SQL是主要依賴了Catalyst這個新的查詢優化框架,在把SQL解析成邏輯執行計劃以後,利用Catalyst包裏的一些類和接口,執行了一些簡單的執行計劃優化,最後變成RDD的計算;github

         Databricks表示,Shark更可能是對Hive的改造,替換了Hive的物理執行引擎,所以會有一個很快的速度。然而,不容忽視的是,Shark繼承了大,量的Hive代碼,所以給優化和維護帶來了大量的麻煩。隨着性能優化和先進分析整合的進一步加深,基於MapReduce設計的部分無疑成爲了整個項目的瓶頸;數據庫

         Spark新發布的Spark SQL組件讓Spark對SQL有了別樣於Shark基於Hive的支持:apache

l   其一,能在Scala代碼裏寫SQL,支持簡單的SQL語法檢查,能把RDD指定爲Table存儲起來。此外支持部分SQL語法的DSL。性能優化

l   其二,支持Parquet文件的讀寫,且保留Schema。框架

l   其三,能在Scala代碼裏訪問Hive元數據,能執行Hive語句,而且把結果取回做爲RDD使用。工具

 Q2:Spark SQL會提供JDBC嗎?oop

    Spark官方指出:「Spark SQL includes a server mode with industry standard JDBC and ODBC connectivity.」;性能

    Jdbc support branchis under going。    大數據

 Q3:執行Task不是還要跟Driver交互嗎?

    執行Task時要和Driver交互,動態的向Driver報告執行狀況。

 Q4:對於RDD上的數據如何取出來供外部程序使用?

    使用save等方法保存在HDFS之上;

    而後經過Sqoop等工具處處到MySQL等數據庫供外部使用;

    也能夠保存在HBase之上。

 Q5:Spark官網上說Spark SQL不是很強大,還說建議你們複查查詢的時候仍是使用Hive。

         Spark 1.0和1.0.1版本複雜的查詢須要使用Hive;

         隨着Spark版本的更新,能夠作任何複雜度的查詢。

相關文章
相關標籤/搜索