李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
01.SparkSQL概述
Leefs
2021-07-16 PM
1033℃
0条
# 01.SparkSQL概述 ### 一、简介 spark SQL是spark的一个模块,主要用于进行结构化数据的处理。它提供的最核心的编程抽象就是DataFrame。 和基本的Spark RDD API不同的是Spark SQL提供了更多关于数据结构和正在执行的计算的信息。 在内部,Spark SQL使用这些额外的信息来执行额外的优化。可以使用SQL或者Dataset API与Spark SQL进行交互。 ### 二、发展历程 1. 1.0以前 Shark,SparkSQL的前身是Shark。但是,随着Spark的发展,Shark对于Hive的太多依赖 (如采用Hive的语法解析器、查询优化器等等),制约了Spark的One Stack Rule Them All的既定方针, 制约了Spark各个组件的相互集成,所以提出了SparkSQL项目。 2. 1.1.x开始 SparkSQL(只是测试性的) SQL 3. 1.3.x SparkSQL(正式版本)引入Dataframe,在spark<1.3版本时,对应就是SchemaRDD 4. 1.5.x SparkSQL 钨丝计划 5. 1.6.x SparkSQL+DataFrame+DataSet,引入DataSet 6. 2.0.0之后 SparkSession,引入了Strcutured Streaming ### 三、特征 1. 集成化 将SQL查询与Spark程序无缝对接,使用SQL或熟悉的DataFrame API查询Spark程序内的结构化数据。 可用于Java,Scala,Python和R。 2. 统一的数据访问 以read、write同样的方式连接到任何数据源。提供了访问各种数据源的常用方式, 包括Hive,Avro,Parquet,ORC,JSON和JDBC甚至可以通过这些来源加入数据。 3. 集成hive Spark SQL支持HiveQL语法以及Hive SerDes和UDF等,允许访问现有的Hive仓库。 4. 标准的数据连接 可以通过JDBC或ODBC连接Spark SQL ### 四、运行架构 SparkSQL架构分成三个部分,第一部分是前端的,第二部分是后端的,对三个部分是中间的Catalyst,Catalyst是整个架构的核心负责处理查询语句的整个过程,包括解析、绑定、优化、物理计划等。 ![01.SparkSQL概述01.png](https://lilinchao.com/usr/uploads/2021/07/430190607.png) 1. 前端提供不同的访问形式 - 典型的我们可以使用hive,hive过来就是一个SQL语句,SQL语句其实就是一个字符串。 - 第二种访问方式,我们可以通过spark的应用程序,编程的方式来操作,编程的时候我们可以使用SQL, 也可以使用dataframe或者是dataset api。 - 第三种是Streaming SQL,也就是说流和SQL综合起来使用。 2. Catalyst - 当前端过来以后他首先会生成一个`Unresolved Logical Plan`,也就是一个没有彻底解析完的一个执行计划, 这个执行计划会和我们的元数据metastore里面的schema一个表信息进行整合然后生成一个Logical Plan(逻辑执行计划)。 - 逻辑执行计划是最原始的,中间还会做各种优化也很多规则作用上去,也就是图中的Optimization Rules, 然后进行优化以后生成优化过后的逻辑执行计划,就是图中的Optimized Logical Plan。 - 逻辑执行计划生成完了以后,才会生成物理执行计划,也就是我们spark的一个作业。 3. 后端 - 本质转化为RDD,然后提交到集群执行
标签:
Spark
,
Spark SQL
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1323.html
上一篇
10.【转载】Spark RDD持久化
下一篇
02.SparkSQL数据模型DataFrame和DataSet介绍
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
Spring
链表
Netty
Filter
持有对象
Beego
散列
随笔
机器学习
锁
SpringBoot
RSA加解密
字符串
ajax
队列
Shiro
线程池
BurpSuite
Hbase
Elasticsearch
JVM
Eclipse
排序
算法
正则表达式
Yarn
数据结构
Ubuntu
栈
二叉树
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞