Spark SQL is a Spark module for structured data processinghtml
對不一樣的數據類型使用統一的接口來讀寫。java
提高大數據處理速度最有效的方法就是忽略無關的數據。mysql
(1)使用列式存儲(columnar formats),好比Parquet、ORC、RCFileweb
(2)使用分區裁剪(partitioningpruning),好比按天分區,按小時分區等sql
(3)利用數據文件中附帶的統計信息進行剪枝:例如每段數據都帶有最大值、最小值和NULL值等統計信息,當某一數據段確定不包含查詢條件的目標數據時,能夠直接跳過這段數據。(例如字段age某段最大值爲20,但查詢條件是>50歲的人時,顯然能夠直接跳過這段)shell
(4)將查詢源中的各類信息下推至數據源處,從而充分利用數據源自身的優化能力來完成剪枝、過濾條件下推等優化。數據庫
Catalyst優化器對SQL語句進行優化,從而獲得更有效的執行方案。即便咱們在寫SQL的時候沒有考慮這些優化的細節,Catalyst也能夠幫咱們作到不錯的優化結果。架構
a)將hive的配置文件hive-site.xml拷貝到spark conf目錄,同時添加metastore的url配置(對應hive安裝節點,個人爲3節點)。app
修改完後再發送給其餘節點less
b)拷貝hive中的mysql jar包到spark的jar目錄下,再發送給其餘節點
c)檢查spark-env.sh 文件中的配置項,沒有添加,有則跳過
a)檢查mysql是否啓動
b)啓動hive metastore服務
c)啓動hive
本地kfk.txt文件
d)啓動spark-shell
啓動spark-sql
經過使用beeline能夠實現啓動一個應用給多個用戶同時操做,而沒必要要啓動多個應用,這樣更加節省資源。
1)啓動ThriftServer
2)啓動beeline
啓動spark-shell
Spark SQL與HBase集成,其核心就是Spark Sql經過hive外部表來獲取HBase的表數據。
1)拷貝HBase的包和hive包到spark 的jars目錄下
2)啓動Hbase
3)啓動Hive
4)啓動spark-shell
這一步若是報NoClassDefFoundError錯誤請參考博文:Spark-HBase集成錯誤之 java.lang.NoClassDefFoundError: org/htrace/Trace
到這,Spark與HBase的集成就算成功了!
以上就是博主爲你們介紹的這一板塊的主要內容,這都是博主本身的學習過程,但願能給你們帶來必定的指導做用,有用的還望你們點個支持,若是對你沒用也望包涵,有錯誤煩請指出。若有期待可關注博主以第一時間獲取更新哦,謝謝!同時也歡迎轉載,但必須在博文明顯位置標註原文地址,解釋權歸博主全部!