前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

Shark 是什么?有什么特点?

Spark SQL 的前身是 Shark ,即"Hive on Spark",由 Reynold Xin 主导开发。

Shark 项目最初启动于 2011 年,当时 Hive 几乎算是唯一的 SQL-on-Hadoop 选择方案。

Hive 将 SQL 语句翻译为 MapReduce ,性能会受限于 MapReduce 计算模型,始终无法满足各种交互式 SQL 分析的需求,因此许多机构仍然依赖传统的企业数据仓库( EDW )。

Shark 的提出就是针对这种需求的,目标是既能够达到 EDW 的性能,又能够具有 MapReduce 的水平扩展功能。

Shark 建立在 Hive 代码的基础上,只修改了内存管理、物理计划、执行 3 个模块中的部分逻辑。

Shark 通过将 Hive 的部分物理执行计划交换出来(“swapping out the physical execution engine part of Hive"),

最终将 HiveQL 转换为 Spark 的计算模型,使之能运行在 Spark 引擎上,从而使得 SQL 査询的速度得到 10 ~ 100 倍的提升。

此外, Shark 的最大特性是与 Hive 完全兼容,并且支持用户编写机器学习或数据处理函数,对 HiveQL 执行结果进行进一步分析。

Shark 的缺陷

但是,随着 Spark 的不断发展, Shark 对 Hive 的重度依赖体现在架构上的瓶颈越来越突出。

一方面, Hive 的语法解析和查询优化等模块本身针对的是 MapReduce ,限制了在 Spark 系统上的深度优化和维护;

另一方面,过度依赖 Hive 制约了 Spark 的“One Stack Rule Them All”既定方针,也制约了技术校中各个组件的灵活集成。

Shark -> Spark SQL

在此背景下, Spark SQL 项目被提出来,由 Michael Armbrust 主导开发。

Spark SQL 抛弃原有 Shark 的架构方式,但汲取了 Shark 的一些优点,如内存列存储( In-Memory Columnar Storage )、 Hive 兼容性等,重新开发了 SQL 各个模块的代码。

由于摆脱了对 Hive 的依赖, SparkSQL 在数据兼容、性能优化、组件扩展方面都得到了极大的提升。

在 2014 年 7 月 1 日的 Spark 峰会上, Databricks 公司宣布终止对 Shark 的开发,将后续重点放到 Spark SQL 上。

Spark SQL 涌盖了 Shark 的所有特性,用户可以从 Shark 进行无缝升级,至此, Shark 的发展画上了句号。

Spark SQL 开始迎来蓬勃的发展阶段。

如今, Spark SQL 已经成为 Apache Spark 中最为活跃的子项目。

Spark SQL 的重要性

伴随着 Apache Spark 的发展,特别是最新的 Spark 3.x 版本发布后,Spark SQL 已经逐渐取代了 Spark Core 成为 Spark 生态的底层实现方式。

Spark SQL是怎么发展起来的?相关推荐

  1. Spark SQL架构工作原理及流程解析

    Spark SQL架构工作原理及流程解析,spark sql从shark发展而来,Shark为了实现Hive兼容,在HQL方面重用了Hive中HQL的解析.逻辑执行计划翻译.执行计划优化等逻辑. Sp ...

  2. SQL数据分析概览——Hive、Impala、Spark SQL、Drill、HAWQ 以及Presto+druid

    转自infoQ! 根据 O'Reilly 2016年数据科学薪资调查显示,SQL 是数据科学领域使用最广泛的语言.大部分项目都需要一些SQL 操作,甚至有一些只需要SQL. 本文涵盖了6个开源领导者: ...

  3. Spark SQL在携程的实践经验分享

    本文根据张翼老师在2018年5月13日[第九届中国数据库技术大会]现场演讲内容整理而成. 讲师简介: 张翼,10年互联网老兵;2015年3月加入携程,携程的大数据平台技术总监,带领团队构建稳定,高效的 ...

  4. 如何查询spark版本_掌握Spark SQL中的查询执行

    了解您的查询计划 自从Spark 2.x以来,由于SQL和声明性DataFrame API,在Spark中查询数据已成为一种奢侈. 仅使用几行高级代码就可以表达非常复杂的逻辑并执行复杂的转换. API ...

  5. Spark SQL: Relational Data Processing in Spark

    Spark SQL: Relational Data Processing in Spark Spark SQL : Spark中关系型处理模块 说明: 类似这样的说明并非是原作者的内容翻译,而是本篇 ...

  6. 大数据Hadoop之——Spark SQL+Spark Streaming

    文章目录 一.Spark SQL概述 二.SparkSQL版本 1)SparkSQL的演变之路 2)shark与SparkSQL对比 3)SparkSession 三.RDD.DataFrames和D ...

  7. 2018年又传喜报!热烈祝贺王家林大师大数据经典著作《Spark SQL大数据实例开发教程》 畅销书籍 出版上市!

    2018年又传喜报!热烈祝贺王家林大师大数据经典著作<Spark SQL大数据实例开发教程> 畅销书籍 出版上市! 作者: 王家林 段智华  条码书号:9787111591979 出版日期 ...

  8. Spark SQL概述

    1.介绍 Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用.使用Spark SQL有两种方式,包括SQL语句以及 ...

  9. 袋鼠云数栈基于CBO在Spark SQL优化上的探索

    原文链接:袋鼠云数栈基于CBO在Spark SQL优化上的探索 一.Spark SQL CBO选型背景 Spark SQL的优化器有两种优化方式:一种是基于规则的优化方式(Rule-Based Opt ...

最新文章

  1. python连接ssh执行模块_python ssh之paramiko模块使用
  2. 过滤器解决Struts2重定向漏洞
  3. ASP.NET Core缓存静态资源
  4. 理解 maven 的核心概念
  5. [Luogu 1351] NOIP2014 联合权值
  6. 仅剩296个免费名额,AI工程师进阶必修课今日领取
  7. 分子动力学aimd_研究人员在沸石分子筛活性调控研究方面取得新进展
  8. 计算机的组成结构6,计算机组成及结构.6.ppt
  9. 异构计算崛起,GPU加速计算服务器FP5468G2应运而生
  10. 团体程序设计天梯赛-练习集-L1-046. 整除光棍
  11. mvc:annotation-driven /注解意义(转)
  12. 计算机软件工程专业研究生大学排名,软件工程研究生院校排名
  13. 教你如何在短期内做好会员运营快速拉新用户
  14. Java 在PDF中添加水印——文本/图片水印
  15. 手机计算机怎么输入汉字,手机word怎么插入形状并输入文字?
  16. Python GUI工具——取色器
  17. 我终于开通了微信公众号
  18. Kafka中zookeeper的作用详解(7点)
  19. DELPHI 控件的相对坐标与屏幕坐标转换
  20. PS制作黑暗墙面上的漂亮霓虹文字

热门文章

  1. ie浏览器调用本地文件无反应_win7 ie浏览器打不开本地htm文件
  2. 转发和重定向的区别以及适用范围
  3. html5新特性(一)
  4. 729. 我的日程安排表 I
  5. 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分
  6. 汇编语言与微机原理(1)基础知识
  7. 【数据库系统概念第七版(Database System Concepts 7th)配套SQL文件如何获取】
  8. mp4转gif在线转换,视频转换成gif动图怎么做?
  9. 堆垛实训报告总结_叉车实训总结
  10. 8位灰度图像BMP的保存