Shark

Shark是基于Spark计算框架之上且兼容Hive语法的SQL执行引擎,由于底层的计算采用了Spark,性能比MapReduce的Hive普遍快2倍以上,当数据全部load在内存的话,将快10倍以上,因此Shark可以作为交互式查询应用服务来使用。除了基于Spark的特性外,Shark是完全兼容Hive的语法,表结构以及UDF函数等,已有的HiveSql可以直接进行迁移至Shark上Shark底层依赖于Hive的解析器,查询优化器,但正是由于SHark的整体设计架构对Hive的依赖性太强,难以支持其长远发展,比如不能和Spark的其他组件进行很好的集成,无法满足Spark的一栈式解决大数据处理的需求。

SparkSQL

  • SparkSQL介绍

Hive是Shark的前身,Shark是SparkSQL的前身,SparkSQL产生的根本原因是其完全脱离了Hive的限制。

  1. SparkSQL支持查询原生的RDD。 RDD是Spark平台的核心概念,是Spark能够高效的处理大数据的各种场景的基础。
  2. 能够在Scala中写SQL语句。支持简单的SQL语法检查,能够在Scala中写Hive语句访问Hive数据,并将结果取回作为RDD使用。
  • Spark on Hive和Hive on Spark

Spark on Hive: Hive只作为储存角色,Spark负责sql解析优化,执行。

Hive on Spark:Hive即作为存储又负责sql的解析优化,Spark负责执行。

  • DataFrame

DataFrame也是一个分布式数据容器。与RDD类似,然而DataFrame更像传统数据库的二维表格,除了数据以外,还掌握数据的结构信息,即schema。同时,与Hive类似,DataFrame也支持嵌套数据类型(struct、array和map)。从API易用性的角度上 看, DataFrame API提供的是一套高层的关系操作,比函数式的RDD API要更加友好,门槛更低。

DataFrame的底层封装的是RDD,只不过RDD的泛型是Row类型。

  • SparkSQL的数据源

SparkSQL的数据源可以是JSON类型的字符串,JDBC,Parquent,Hive,HDFS等。

  • SparkSQL底层架构

首先拿到sql后解析一批未被解决的逻辑计划,再经过分析得到分析后的逻辑计划,再经过一批优化规则转换成一批最佳优化的逻辑计划,再经过SparkPlanner的策略转化成一批物理计划,随后经过消费模型转换成一个个的Spark任务执行。

  • 谓词下推(predicate Pushdown)

Spark _21 _SparkSQL介绍相关推荐

  1. Spark 架构原理介绍 以及 job、task、stag 概念

    Spark运行模式 一:Spark 运行架构介绍 相关术语概念详解: Application:指的是用户编写的Spark应用程序,包含了一个Driver功能的代码和分布在集群中多节点上运行的Execu ...

  2. Spark RDD算子介绍

    Spark学习笔记总结 01. Spark基础 1. 介绍 Spark可以用于批处理.交互式查询(Spark SQL).实时流处理(Spark Streaming).机器学习(Spark MLlib) ...

  3. spark算子详细介绍(v、k-v、vv类型)

    spark算子详细介绍 算子分区数.分区器如何确定? Value 类型 1. map() 改变结构就用map 2. mapPartitions() 以分区为单位执行Map 思考一个问题:map和map ...

  4. OpenFire、Spark、Smack介绍

    OpenFire 是采用Java开发的基于XMPP(Jabber)协议,开源实时协作(RTC)服务器. Smack 是用 Java编 写的XMPP客户端代码库,是 spark 的核心 开源界总是有许多 ...

  5. 三个大数据处理框架:Storm,Spark和Samza 介绍比较

    转自:http://www.open-open.com/lib/view/open1426065900123.html 许多分布式计算系统都可以实时或接近实时地处理大数据流.本文将对三种Apache框 ...

  6. spark 常用函数介绍(python)

    在开始之前,我先介绍一下,RDD是什么? RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD.从编程的角度来看,RDD可以简单看成是一个数组.和普通数组的区别是,RDD中的 ...

  7. spark on yarn 完全分布式_「大数据」(七十一)Spark之架构介绍

    [导读:数据是二十一世纪的石油,蕴含巨大价值,这是·情报通·大数据技术系列第[71]篇文章,欢迎阅读和收藏] 1 基本概念 Spark 架构采用了分布式计算中的 Master-Slave 模型. Ma ...

  8. Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.Spark Streaming简介 1.1 概述 Spark Streaming 是Sp ...

  9. Spark Streaming的介绍和IDEA操作

    官网:https://spark.apache.org/docs/latest/streaming-programming-guide.html 一:介绍 Spark流是核心Spark API的扩展, ...

最新文章

  1. 微信小程序swiper组件宽高自适应方法
  2. 解决SQL server2005数据库死锁的经验心得
  3. iframe ajax上传,ajax--iframe模拟ajax文件上传效果
  4. 陌生的是人心,是人性,是社会,是世道
  5. WordPress解析之数据库
  6. 联想android4.4.2版本,联想YOGA 平板2系统是什么?能升级安卓4.2吗?
  7. OS中atomic的实现解析
  8. Python学习笔记——基础篇【第六周】——hashlib模块
  9. sql数据库备份默认路径_在Linux上SQL Server中更改默认数据库文件和备份路径
  10. jQuery Mobile主题使用与定制
  11. scale data:线性空间映射
  12. M语言中的操作符说明:函数与圆括号()
  13. 小学计算机学什么,小学信息技术课学什么
  14. 批量解除文件锁定状态包含子文件夹
  15. element ui vue el-input el-button 键盘回车事件
  16. postgresql Connection to database failed: FATAL: no pg_hba.conf entry for host 10.129.195.161, us
  17. 通配符(一般用来查找文件)
  18. 考取IT职业资格证书相关信息
  19. Java游戏雀圣麻将,《梦幻麻将馆9雀圣争霸》游戏全程攻略
  20. UE4 Niagara UI Renderer插件使用

热门文章

  1. HDU - 7009 树上游走(树的直径+容斥)
  2. 牛客多校3 - Operation Love(几何+叉积确定三点顺逆)
  3. python语言的重要性_【一点资讯】这个可能打败Python的编程语言,正在征服科学界 www.yidianzixun.com...
  4. Docker教程-安装
  5. 深度优先遍历算法-03二叉树路径遍历问题
  6. Linux服务-telnet服务部署(配置允许root登录)
  7. mysqld: Can‘t create directory ‘D:\software\mysql-8.0.28-winx64\mysql-8.0.28-winx64\bin\ oftware\mys
  8. Django的主要开发流程(以扩充用户模型为例)
  9. 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
  10. HTTP的前世今生(HTTP1.1,HTTPS,SPDY,HTTP2.0,QUIC,HTTP3.0)