Spark SQL之延伸Hive On Spark
目录
一: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相关推荐
- 学习笔记Spark(六)—— Spark SQL应用(1)—— Spark SQL简介、环境配置
一.Spark SQL简介 1.1.Spark SQL特性 Spark SQL是Spark Core之上的一个组件,它引入了一个称为SchemaRDD的新- 数据抽象,它为结构化和半结构化数据提供支持 ...
- Spark SQL: Relational Data Processing in Spark
Spark SQL: Relational Data Processing in Spark Spark SQL : Spark中关系型处理模块 说明: 类似这样的说明并非是原作者的内容翻译,而是本篇 ...
- spark sql教程_如何使用Spark SQL:动手教程
spark sql教程 在本系列的第一部分中,我们研究了使用Apache Spark SQL和DataFrames "大规模"利用关系数据库的功能方面的进展. 现在,我们将基于现实 ...
- 学习笔记Spark(七)—— Spark SQL应用(2)—— Spark DataFrame基础操作
二.Spark DataFrame基础操作 2.1.DataFrame DataFrame是一种不可变的分布式数据集,这种数据集被组织成指定的列,类似于关系数据库中的表. 数据集的每一列都带有名称和类 ...
- Spark大数据-基于Hive和Spark的淘宝双11数据分析与预测
基于Hive和Spark的淘宝双11数据分析与预测 1.系统和环境要求(版本仅供参考): Linux: centos7 MySQL: 5.7.16 Hadoop: 2.7.1 Hive: 1.2.1 ...
- 学习笔记Spark(八)—— Spark SQL应用(3)—— Spark DataSet基础操作
三.Spark DataSet基本操作 3.1.DataSet简介 DataSet是分布式的数据集合,DataSet提供了强类型支持,也是在RDD的每行数据加了类型约束. DateSet整合了RDD和 ...
- 日志分析 进入大数据Spark SQL的世界
以慕课网日志分析为例 进入大数据 Spark SQL 的世界 这篇blog是这个项目的总结,因为从别的地方学习过Hadoop.Spark的一些基础知识了,所以这部分略过.针对自身的不足,我抛出一些问题 ...
- 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 ...
- hive编程指南电子版_第三篇|Spark SQL编程指南
在<第二篇|Spark Core编程指南>一文中,对Spark的核心模块进行了讲解.本文将讨论Spark的另外一个重要模块--Spark SQL,Spark SQL是在Shark的基础之上 ...
最新文章
- 广西互联网金融平台系列-7条奇怪的投资数据
- requests(二): json请求中固定键名顺序消除键和值之间的空格
- 转png格式_CAD转PNG,你知道怎样转换成高质量清晰的黑白图片吗?
- ubuntu下配置bind9为局域网的DNS服务器
- 前端学习(1405):多人管理25node.js—安装bcrypt出现错误的解决办法
- 双绞线传输距离_视频监控系统中布线常用传输线缆分类及制作方法
- [Think]故事几则
- 桂林理工大学计算机研究调剂,2018年桂林理工大学考研调剂信息
- c++ 打印条码_条码标签打印软件快捷键指南
- PowerBuilder GRID美化
- 【我为车狂性感车模win7主题】
- VAX/VMS虚拟内存系统
- 三菱plcfx5u指令手册_可编程控制器FX5U-64MT/ESSLMP篇手册三菱FX5U-64MT/ES用户手册 - 广州凌控...
- 摩云ktv点歌系统服务器,摩云ktv点歌服务器系统更新
- 只用十行 Python 代码就提取了韦小宝的身份证信息
- 将EXCEL表格的数据转化为数组对象形式的数据
- 计算机网络教程实验二——静态路由配置实验心得
- 计算机奥林匹克竞赛基础知识,竞赛考什么?五大学科竞赛基础常识盘点
- hooper篮球意思_这些篮球术语都什么意思?
- 学术期刊的概念、分类,计算机类主要期刊索引和机构
热门文章
- 计算机考试身份证、准考证都要带原件吗?
- 巧用bat批量开启关闭服务
- AE绘制行军路线箭头 思路 +源代码共享
- Unicode(UTF-8, UTF-16)令人混淆的概念 和 python unicode转中文及转换默认编码
- fedora grub2_如何在Fedora和Ubuntu中将“ nomodeset”添加到Grub2
- 婚礼视频如何精致起来?可以用模板解决!
- 【Apollo 6.0学习笔记】感知
- 【burpsuite】核心使用方法
- 鹤壁城市之美首先来自于水的灵秀
- XNA学习笔记3 鼠标响应