SparkSQL概述
1、SparkSQL前世今生
?
為什么需要SQL
?1)事實上的標準:統計分析的標準
?2)易學易用
?3)受眾面大
例子:
對文本文件進行統計分析:
id,name,age,city
1001,zhangsan,45,beijing
....
table定義:Person
column定義:
? ? ?id:int
? ? ?name:string
? ? ?age:int
? ? city:string
hive:load data
sql:query
Shark:
Hive:類似sql的Hive QL語言,sql==>mapreduce
缺點:mapreduce效率比較低下
改進:hive? on tez 、mapreduce 、spark上面
Shark推出:很受歡迎,將原來hive數據跑在spark,基于spark、基于內存的列式存儲、與hive能夠兼容
缺點:hive ql的解析、邏輯執行計劃的生成是依賴與hive的,Shark僅僅是把物理執行計劃從mr作業替換成spark作業
Shark在14年左右被終止之后,產生兩個分支:
1)hive on spark
hive社區,源碼在hive 中
2)spark SQL
Spark 社區,源碼在Spark中
支持多種數據源、多種優化技術、擴展性好很多
2、SQL on Hadoop 常用框架
1)hive:將sql轉換成mapreduce,megastore:元數據,sql:database、table、view
2)? impala:cloudera:cdh、cm? sql:守護自己的進程而不是mr的
3)presto:facebook、京東使用 sql
4) drill sql? ?可以訪問:hdfs 、rdbms、json、hbase、mangodb、hive
5) Spark SQL? sql? ?dataframe/datasets api metastore? ?
可以訪問:hdfs 、rdbms、json、hbase、mangodb、hive? ==>外部數據源
3、Spark SQL概述
1)Spark中核心組件,除sparkcore 之外最受關注的模塊,spark1.0版本發布的(Alpha畢業之后比較穩定)
2)運行sql hive
3)通過jdbc通過spark快速處理數據
4)支持多語言
5)SparkSQL? 不僅僅有訪問和操作SQL功能,還提供其他豐富的操作:外部數據源、優化
4、Spark SQL 愿景
寫更少的代碼、讀更少的數據、讓底層進行優化
5、Spark SQL架構
?
總結
以上是生活随笔為你收集整理的SparkSQL概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scala操作外部数据
- 下一篇: Hive到SparkSql