博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark SQL概念学习系列之Spark SQL基本原理
阅读量:6238 次
发布时间:2019-06-22

本文共 1732 字,大约阅读时间需要 5 分钟。

 

 

 

Spark SQL基本原理

  1、Spark SQL模块划分

  2、Spark SQL架构--catalyst设计图

  3、Spark SQL运行架构

  4、Hive兼容性

 

 

 

 

 

   1、Spark SQL模块划分

            

        

    Spark SQL模块划分为Core、caralyst、hive和hive- ThriftServer四大模块。

      

  Spark SQL依然是读取数据进去,然后你可以执行sql操作,然后你还可以执行其他的结构化操作,不光仅仅是只能sql操作哈!这一点,很多人都没理解到位。

也有数据的输入和输出的工作。

  比如,Spark SQL模块里的core模块,就是为了处理数据的输入输出。将查询结果输出成DataFrame。具体见上图。

       Spark SQL模块里的catalyst模块。具体见上图。

       Spark SQL模块里的hive模块,对hive数据的处理。具体见上图。

       Spark SQL模块里的hive -ThriftServer模块,具体见上图。

 

 

 

 

 

 

 

 

  2、Spark SQL架构--catalyst设计图(这里说Spark SQL模块里的catalyst模块!!)

          

    注意:图中的虚线部分是现在未实现或实现不完善的。

  其中虚线部分是以后版本要实现的功能,实线部分是已经实现的功能。从上图看,catalyst主要的实现组件有:

   sqlParse,完成sql语句的语法解析功能,目前只提供了一个简单的sql解析器;

   Analyzer,主要完成绑定工作,将不同来源的Unresolved LogicalPlan和元数据(如hive metastore、Schema catalog)进行绑定,生成resolved LogicalPlan;

  optimizer,对resolvedLogicalPlan进行优化,生成optimizedLogicalPlan(OptimizationRules,对resolvedLogicalPlan进行合并、列裁剪、过滤器下推等优化作业而转换成optimized LogicalPlan);

   Planner,将LogicalPlan转换成PhysicalPlan;

  CostModel,主要根据过去的性能统计数据,选择最佳的物理执行计划。

 

 

 

 

 

 

 

 

  3、Spark SQL运行架构

  类似于关系型数据库,SparkSQL也是语句也是由Projection(a1,a2,a3)、DataSource(tableA)、Filter(condition)组成,分别对应sql查询过程中的Result、Data Source、Operation,也就是说SQL语句按Result-->Data Source-->Operation的次序来描述的。

            

  执行SparkSQL语句顺序为:

   1.对读入的SQL语句进行解析(Parse),分辨出SQL语句中哪些词是关键词(如SELECT、FROM、WHERE),哪些是表达式、哪些是Projection、哪些是Data Source等,从而判断SQL语句是否规范;

   2.将SQL语句和数据库的数据字典(列、表、视图等等)进行绑定(Bind),如果相关的Projection、DataSource等都是存在的话,就表示这个SQL语句是可以执行的;

   3.一般的数据库会提供几个执行计划,这些计划一般都有运行统计数据,数据库会在这些计划中选择一个最优计划(Optimize);

   4.计划执行(Execute),按Operation-->DataSource-->Result的次序来进行的,在执行过程有时候甚至不需要读取物理表就可以返回结果,比如重新运行刚运行过的SQL语句,可能直接从数据库的缓冲池中获取返回结果。

 

 

 

 

 

 

  4、Hive兼容性

    支持使用hql来写查询语句

    兼容metastore

    使用Hive的SerDes

     对UDFs, UDAFs, UDTFs作了封装。

转载地址:http://ofzia.baihongyu.com/

你可能感兴趣的文章
安全研究人员推出鱼叉式网络钓鱼黑箱粉碎机
查看>>
OpenStack 开始衰落了吗?
查看>>
[lcm] Qualcomm Android Display Subsystem 架构
查看>>
Django REST framework 的TokenAuth认证及外键Serializer基本实现
查看>>
PostgreSQL 图像搜索插件使用篇
查看>>
无线网络便利 无线安全堪忧
查看>>
选择云存储 不重视这八个问题就会吃亏
查看>>
云计算在大型企业迅猛发展
查看>>
国内首个国际云计算博览会落户重庆
查看>>
【天池直播】O2O大赛冠军经验分享
查看>>
IDC:物联网计划对IT基础设施影响重大
查看>>
浪潮服务器撑起食品质量安全追溯物联网 力保舌尖上的安全
查看>>
七牛小伙伴|小咖秀的产品构建经验谈
查看>>
大数据时代下的意图搜索 个性化服务是关键
查看>>
这些技术可能会阻碍你在大数据征程上的步伐
查看>>
大数据融合将解锁物联网真正潜力
查看>>
不止提供上网服务 WiFi技术有了新功能
查看>>
云服务再次歇菜数易云备系统从容应对
查看>>
智能数据湖势在必行
查看>>
如何防止rogue server破坏数据中心
查看>>