4-1 课程目录
Spark SQL前世今生 SQL on Hadoop常用框架介绍
Spark SQL概述 Spark SQL愿景
Spark SQL架构
4-2 -Spark SQL前世今生
为什么使用SQL
1)事实上的标准 2)简单易用 3)受众面大
文本文件统计分析
id,name,age,city
1001,zhangsan,45,beijing
1002,kusu,39,shanghai
1003,wangwu,34,tianjin
........
table定义:person
column定义
id:int
name:string
age:int
city:string
hive: load data
sql:query...
Hive:类似于sql的hive QL语言,sql==>mapreduce
特点:mapreduce
改进:hive on tez,hive on spark, hive on mareduce
Shark:hive on spark==>shark(hive on spark)
shark推出:欢迎,基于spark,基于内存的列式存储,与hive能够兼容
缺点:hql ql的解析 、逻辑执行计划生成、执行计划的优化是依赖于hive的,仅仅只是把物理执行计划从mr作业替换成spark作业。
Shark终止以后,产生了2个分支
1)hive on spark
hive社区,源码在hive中
2)spark sql
spark社区,源码在spark中
支持多种数据源,多种优化技术,扩展性很好
4-3 -SQL on Hadoop常用框架介绍
1)hive
SQL==》mapreduce
metastore:元数据
sql:database,table,view
2)impala
cloudera:cdh(建议大家在生产环境使用hadoop系列版本)、cm
sql:自己的守护进程执行的,非mr
3)presto
京东
sql
4)drill
sql
访问:hdfs ,rebms,json,hbase,mangodb,s3,hive
5)spark sql
sql
dataframe/dataset api
metastore
访问:hdfs ,rebms,json,hbase,mangodb,s3,hive
4-4 -Spark SQL概述
官网:https://spark.apache.org/sql/
Spark SQL is Apache Spark's module for working with structured data.
Spark sql它不仅仅是访问或者操作sql功能,还提供了其他丰富的操作,外部数据源,优化
Spark SQl概述小结
1)spark sql 的应用并不局限于sql
2)访问hive,json,parquet等文件的数据
3)SQL只是spark SQL的一个功能而已
==》spark SQL这个名字并不恰当
4)spark SQL提供了SQL的api,dateframe和dataset的api