网站大量收购闲置独家精品文档,联系QQ:2885784924

Spark大数据分析 课件 第5章 Spark核心原理.pptx

Spark大数据分析 课件 第5章 Spark核心原理.pptx

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

SparkSQL简介

目录/Contents01什么是SparkSQL02SparkSQL架构

什么是SparkSQL01

什么是SparkSQLSparkSQL是Spark用来处理结构化数据(结构化数据可以来自外部结构化数据源也可以通过RDD获取)的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。外部的结构化数据源包括JSON、Parquet(默认)、RMDBS、Hive等。当前SparkSQL使用Catalyst优化器来对SQL进行优化,从而得到更加高效的执行方案。并且可以将结果存储到外部系统。

什么是SparkSQLSparkSQL的前身是Shark,Shark最初是美国加州大学伯克利分校的实验室开发的Spark生态系统的组件之一,它运行在Spark系统之上,Shark重用了Hive的工作机制,并直接继承了Hive的各个组件,Shark将SQL语句的转换从MapReduce作业替换成了Spark作业,虽然这样提高了计算效率,但由于Shark过于依赖Hive,因此在版本迭代时很难添加新的优化策略,从而限制了Spark的发展,在2014年,伯克利实验室停止了对Shark的维护,转向SparkSQL的开发。SparkSQL主要提供了以下3个功能。

什么是SparkSQL(1)SparkSQL可以从各种结构化数据源(如JSON、Hive、Parquet等)中读取数据,进行数据分析。(2)SparkSQL包含行业标准的JDBC和ODBC连接方式,因此它不局限于在Spark程序内使用SQL语句进行查询。(3)SparkSQL可以无缝地将SQL查询与Spark程序进行结合,它能够将结构化数据作为Spark中的分布式数据集(RDD)进行查询,在Python、Scala和Java中均集成了相关API,这种紧密的集成方式能够轻松地运行SQL查询以及复杂的分析算法。

SparkSQL架构02

SparkSQL架构SparkSQL架构与Hive架构相比除了把底层的MapReduce执行引擎更改为Spark还修改了Catalyst优化器,SparkSQL快速的计算效率得益于Catalyst优化器。从HiveQL被解析成语法抽象树起,执行计划生成和优化的工作全部交给SparkSQL的Catalyst优化器进行负责和管理。SparkSQL快速的计算效益得益于Catalyst优化器。从HiveQL被解析成语法抽象树起,执行计划生成和优化的工作全部交给SparkSQL的Catalyst优化器负责和管理。如图7-1所示为SparkSQL整体架构。

SparkSQL架构Catalyst优化器是一个新的可扩展的查询优化器,它是基于Scala函数式编程结构,SparkSQL开发工程师设计可扩展架构主要是为了在今后的版本迭代时,能够轻松地添加新的优化技术和功能,尤其是为了解决大数据生产环境中遇到的问题(例如,针对半结构化数据和高级数据分析),另外,Spark作为开源项目,外部开发人员可以针对项目需求自行扩展Catalyst优化器的功能。

SparkSQL架构Catalyst主要的实现组件介绍如下。1、sqlParse:完成sql语句的语法解析功能,目前只提供了一个简单的sql解析器;2、Analyzer:主要完成绑定工作,将不同来源的UnresolvedLogicalPlan和数据元数据(如hivemetastore、Schemacatalog)进行绑定,生成resolvedLogicalPlan;3、Optimizer:对resolvedLogicalPlan进行优化,生成optimizedLogicalPlan;4、Planner:将LogicalPlan转换成PhysicalPlan;5、CostModel:主要根据过去的性能统计数据,选择最佳的物理执行计划Spark作为开源项目,外部开发人员可以针对项目需求自行扩展Catalyst优化器的功能。如图7-2所示为SparkSQL的运行架构。

SparkSQL架构如上图所示,SparkSQL的工作流程可以分为如下几步:(1)使用SessionCatalog保存元数据在解析SQL语句之前,会创建SparkSession,或者如果是2.0之前的版本初始化SQLContext,SparkSession只是封装了SparkContext和SQLContext的创建而已。会把元数据保存在SessionCatalog中,涉及到表名,字段名称和字段类型。创建临时表或者视图,其实就会往SessionCatalog注册。(2)解析SQL使用ANTLR生成未绑定的逻辑计划当调用SparkSes

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档