目录

一:Spark SQL 与 Hive On Spark的区别

二:Hive的基本工作原理

三:Hive On Spark的计算原理

四:Hive On Spark的优化点

五:RPC了解


一:Spark SQL 与 Hive On Spark的区别

Spark SQL是Spark是Spark的一个项目。
研发出来的针对各种数据源,包括Hive、JSON、Parquet、JDBC、RDD等都可以执行查询的,一套基于Spark计算引擎的查询引擎

Hive On Spark是Hive的一个项目
不通过MapReduce作为唯一的查询引擎,而是将Spark作为底层的查询引擎

二:Hive的基本工作原理

Hive QL语句 => 
语法分析 => AST => 
生成逻辑执行计划 => Operator Tree => 
优化逻辑执行计划 => Optimized Operator Tree => 
生成物理执行计划 => Task Tree => 
优化物理执行计划 => Optimized Task Tree => 
执行优化后的Optimized Task Tree

三:Hive On Spark的计算原理

1、将Hive表作为Spark RDD来进行操作

2、使用Hive原语
对于一些针对RDD的操作,比如groupByKey、sortByKey等。不使用Spark的transformation操作和原语

3、新的物理执行计划生成机制
使用SparkCompiler将逻辑执行计划,即Operator Tree,转换为Task Tree。提交Spark Task给Spark进行执行。

4、SparkContext生命周期
Hive On Spark会为每个用户的会话: 执行一次SQL语句,创建一个SparkContext

5、本地和远程运行模式
本地:将Spark Master设置为local,比如set spark.master=local
SparkContext与客户端运行在一个JVM中

远程:将Spark Master设置为Master的地址,那么就是远程模式
SparkContext会在远程的JVM中启动

通过RPC与远程JVM中的SparkContext进行通信

四:Hive On Spark的优化点

1、Map Join
Spark SQL默认对join是支持使用broadcast机制将小表广播到各个节点上,以进行join的

目前采取的是,类似乎MapReduce的Distributed Cache机制,即提高HDFS replica factor的复制因子,以让数据在每个计算节点上都有一个备份,从而可以在本地进行数据读取

2、Cache Table
对于某些需要对一张表执行多次操作的场景,Hive On Spark内部做了优化,即将要多次操作的表cache到内存中,以便于提升性能

五:RPC了解

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议

步骤:
运行时,一次客户机对服务器的RPC调用,大致有如下十步:
1.调用客户端句柄;执行传送参数
2.调用本地系统内核发送网络消息
3.消息传送到远程主机
4.服务器句柄得到消息并取得参数
5.执行远程过程

6.执行的过程将结果返回服务器句柄
7.服务器句柄返回结果,调用远程系统内核
8.消息传回本地主机
9.客户句柄由内核接收消息
10.客户接收句柄返回的数据

Spark SQL之延伸Hive On Spark相关推荐

  1. 学习笔记Spark(六)—— Spark SQL应用(1)—— Spark SQL简介、环境配置

    一.Spark SQL简介 1.1.Spark SQL特性 Spark SQL是Spark Core之上的一个组件,它引入了一个称为SchemaRDD的新- 数据抽象,它为结构化和半结构化数据提供支持 ...

  2. Spark SQL: Relational Data Processing in Spark

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

  3. spark sql教程_如何使用Spark SQL:动手教程

    spark sql教程 在本系列的第一部分中,我们研究了使用Apache Spark SQL和DataFrames "大规模"利用关系数据库的功能方面的进展. 现在,我们将基于现实 ...

  4. 学习笔记Spark(七)—— Spark SQL应用(2)—— Spark DataFrame基础操作

    二.Spark DataFrame基础操作 2.1.DataFrame DataFrame是一种不可变的分布式数据集,这种数据集被组织成指定的列,类似于关系数据库中的表. 数据集的每一列都带有名称和类 ...

  5. Spark大数据-基于Hive和Spark的淘宝双11数据分析与预测

    基于Hive和Spark的淘宝双11数据分析与预测 1.系统和环境要求(版本仅供参考): Linux: centos7 MySQL: 5.7.16 Hadoop: 2.7.1 Hive: 1.2.1 ...

  6. 学习笔记Spark(八)—— Spark SQL应用(3)—— Spark DataSet基础操作

    三.Spark DataSet基本操作 3.1.DataSet简介 DataSet是分布式的数据集合,DataSet提供了强类型支持,也是在RDD的每行数据加了类型约束. DateSet整合了RDD和 ...

  7. 日志分析 进入大数据Spark SQL的世界

    以慕课网日志分析为例 进入大数据 Spark SQL 的世界 这篇blog是这个项目的总结,因为从别的地方学习过Hadoop.Spark的一些基础知识了,所以这部分略过.针对自身的不足,我抛出一些问题 ...

  8. Spark SQL与外部数据源的操作(Spark SQL ——> CSV/JSON/Parquet/hive/mysql)

    目录 一.Spark SQL支持的外部数据源 二.Spark SQL -> CSV 2.1 读CSV文件 a.有列名 b.无列名 2.2 写CSV文件 三.Spark SQL -> JSO ...

  9. hive编程指南电子版_第三篇|Spark SQL编程指南

    在<第二篇|Spark Core编程指南>一文中,对Spark的核心模块进行了讲解.本文将讨论Spark的另外一个重要模块--Spark SQL,Spark SQL是在Shark的基础之上 ...

最新文章

  1. 广西互联网金融平台系列-7条奇怪的投资数据
  2. requests(二): json请求中固定键名顺序消除键和值之间的空格
  3. 转png格式_CAD转PNG,你知道怎样转换成高质量清晰的黑白图片吗?
  4. ubuntu下配置bind9为局域网的DNS服务器
  5. 前端学习(1405):多人管理25node.js—安装bcrypt出现错误的解决办法
  6. 双绞线传输距离_视频监控系统中布线常用传输线缆分类及制作方法
  7. [Think]故事几则
  8. 桂林理工大学计算机研究调剂,2018年桂林理工大学考研调剂信息
  9. c++ 打印条码_条码标签打印软件快捷键指南
  10. PowerBuilder GRID美化
  11. 【我为车狂性感车模win7主题】
  12. VAX/VMS虚拟内存系统
  13. 三菱plcfx5u指令手册_可编程控制器FX5U-64MT/ESSLMP篇手册三菱FX5U-64MT/ES用户手册 - 广州凌控...
  14. 摩云ktv点歌系统服务器,摩云ktv点歌服务器系统更新
  15. 只用十行 Python 代码就提取了韦小宝的身份证信息
  16. 将EXCEL表格的数据转化为数组对象形式的数据
  17. 计算机网络教程实验二——静态路由配置实验心得
  18. 计算机奥林匹克竞赛基础知识,竞赛考什么?五大学科竞赛基础常识盘点
  19. hooper篮球意思_这些篮球术语都什么意思?
  20. 学术期刊的概念、分类,计算机类主要期刊索引和机构

热门文章

  1. 计算机考试身份证、准考证都要带原件吗?
  2. 巧用bat批量开启关闭服务
  3. AE绘制行军路线箭头 思路 +源代码共享
  4. Unicode(UTF-8, UTF-16)令人混淆的概念 和 python unicode转中文及转换默认编码
  5. fedora grub2_如何在Fedora和Ubuntu中将“ nomodeset”添加到Grub2
  6. 婚礼视频如何精致起来?可以用模板解决!
  7. 【Apollo 6.0学习笔记】感知
  8. 【burpsuite】核心使用方法
  9. 鹤壁城市之美首先来自于水的灵秀
  10. XNA学习笔记3 鼠标响应