- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
SparkSQL简介
SparkSQL架构
什么是SparkSQL
什么是SparkSQL
什么是SparkSQL
·SparkSQL是Spark用来处理结构化数据(结构化数据可以来自外部结构化数据源也可以通过RDD获取)的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL
查询引擎的作用。
·外部的结构化数据源包括JSON、Parquet(默认)、RMDBS、Hive等。当前SparkSQL使用Catalyst优化器来对SQL进行优化,从而得到更加高效的执行方案。并且可以将结果存储到外部系统。
什么是SparkSQL
·SparkSQL的前身是Shark,Shark最初是美国加州大学伯克利分校的实验室开发的Spark生态系统的组件之一,它运行在Spark系统之上,Shark重用了Hive的工作机制,并直接继承了Hive
的各个组件,Shark将SQL语句的转换从MapReduce作业替换成了Spark作业,虽然这样提高了计算效率,但由于Shark过于依赖Hive,因此在版本迭代时很难添加新的优化策略,从而限制了Spark的发展,在2014年,伯克利实验室停止了对Shark的维护,转向SparkSQL的开发。
SparkSQL主要提供了以下3个功能。
·(1)SparkSQL可以从各种结构化数据源(如JSON、Hive、Parquet等)中读取数据,进行数据分析。
·(2)SparkSQL包含行业标准的
JDBC和ODBC连接方式,因此它不局限于在Spark程序内使用SQL语句进行查询。
·(3)SparkSQL可以无缝地将SQL查询
与Spark程序进行结合,它能够将结
构化数据作为Spark中的分布式数据
集(RDD)进行查询,在Python、
Scala和Java中均集成了相关API,这
种紧密的集成方式能够轻松地运行SQL查询以及复杂的分析算法。
什么是SparkSQL
SparkSQL架构
SparkSQL架构
·SparkSQL架构与Hive架构相比除了把底层的MapReduce执行引擎更改为Spark还修改了Catalyst优化器,SparkSQL快速的计算效率得益于Catalyst优化器。从HiveQL被解析成语法抽象树起,执行计划生成和优化的工作全部交给SparkSQL的Catalyst优化器进行负责和管理。
·SparkSQL快速的计算效益得益于Catalyst优化器。从HiveQL被解析成语法抽象树起,执行计划生成和优化
的工作全部交给SparkSQL的Catalyst优化器负责和管理。如图7-1所示为SparkSQL整体架构。
Spar程序、ML
(Scala、Java、Python、R)
SparkSQLCLI
JSON
JDBC
SparkSQL架构
·Catalyst优化器是一个新的可扩展的查询优化器,它是基于Scala函数式编程结构,
SparkSQL开发工程师设计可扩展架构主要是为了在今后的版本迭代时,能够轻松地添加新的优化技术和功能,尤其是为了解决大数据生产环境中遇到的问题(例如,针对半结构化数据和高级数据分析),另外,Spark作为开源项目,外部开发人员可以针对项目需求自行扩展Catalyst优化器的功能。
SparkSQL架构
·Catalyst主要的实现组件介绍如下。
·1、sqlParse:完成sql语句的语法解析功能,目前只提供了一个简单的sql解析器;
·2、Analyzer:主要完成绑定工作,将不同来源的UnresolvedLogicalPlan和数据元数据(如hive
catalog)进行绑定,生成resolvedLogicalPlan;
·3、Optimizer:对resolvedLogicalPlan进行优化,生成optimizedLogicalPlan;
·4、Planner:将LogicalPlan转换成PhysicalPlan;
·5、CostModel:主要根据过去的性能统计数据,选择最佳的物理执行计划
·spark作为开源项目,外部开发人员可以针对项目需求自行扩展Catalyst优化器的功能。如图7-2所
您可能关注的文档
- 《汽车节能与新能源技术应用》高职PPT完整全套教学课件.pptx
- 《嵌入式系统原理与开发》课件_第5章.pptx
- 《数据挖掘与机器学习》 课件 项目二 农产品信息可视化分析——NumPy、pandas 与 Matplotlib 库.pptx
- 《数据挖掘与机器学习》 课件 项目七 新闻文本分析——聚类.pptx
- 《数据挖掘与机器学习》 课件 项目三 建筑工程混凝土抗压强度检测——线性回归.pptx
- 《数据挖掘与机器学习》 课件 项目四 电商平台运输行为预测——逻辑回归.pptx
- 《数据挖掘与机器学习》 课件 项目五 加工厂玻璃类别识别——决策树、随机森林.pptx
- 《数据挖掘与机器学习》 课件 项目一 搭建数据挖掘与机器学习编程环境.pptx
- 《数据挖掘与机器学习》 课件2.2.2 pandas数据结构.pptx
- 《数据挖掘与机器学习》 课件2.2.3 数据清洗.pptx
文档评论(0)