没有合适的资源?快使用搜索试试~ 我知道了~
首页6.SparkSQL(上)--SparkSQL简介.pdf
1.Spark及其生态圈简介.pdf 2.Spark编译与部署(上)--基础环境搭建.pdf 2.Spark编译与部署(下)--Spark编译安装.pdf 2.Spark编译与部署(中)--Hadoop编译安装.pdf 3.Spark编程模型(上)--概念及SparkShell实战.pdf 3.Spark编程模型(下)--IDEA搭建及实战.pdf 4.Spark运行架构.pdf 5.Hive(上)--Hive介绍及部署.pdf 5.Hive(下)--Hive实战.pdf 6.SparkSQL(上)--SparkSQL简介.pdf 6.SparkSQL(下)--Spark实战应用.pdf 6.SparkSQL(中)--深入了解运行计划及调优.pdf 7.SparkStreaming(上)--SparkStreaming原理介绍.pdf 7.SparkStreaming(下)--SparkStreaming实战.pdf 8.SparkMLlib(上)--机器学习及SparkMLlib简介.pdf 8.SparkMLlib(下)--SparkMLlib实战.pdf 9.SparkGraphX介绍及实例.pdf 10.分布式内存文件系统Tachyon介绍及安装部署.pdf
资源详情
资源评论
资源推荐

第 1 页 共 34 页 出自石山园,博客地址:http://www.cnblogs.com/shishanyuan
SparkSQL 简介

第 2 页 共 34 页 出自石山园,博客地址:http://www.cnblogs.com/shishanyuan
目 录
1 SPARKSQL的发展历程 ............................................................................................................................................ 3
1.1 H
IVE AND SHARK ................................................................................................................................................. 3
1.2 S
HARK和SPARKSQL ............................................................................................................................................ 3
1.3 S
PARKSQL的性能 ............................................................................................................................................... 4
2
SPARKSQL运行架构 ................................................................................................................................................ 8
2.1 T
REE和RULE ....................................................................................................................................................... 9
2.1.1 Tree ................................................................................................................................................................... 9
2.1.2 Rule ................................................................................................................................................................. 10
2.2
SQLCONTEXT和HIVECONTEXT的运行过程 ...................................................................................................... 10
2.2.1 sqlContext
的运行过程
................................................................................................................................... 10
2.2.2 hiveContext
的运行过程
................................................................................................................................. 11
2.3
CATALYST优化器 ............................................................................................................................................... 12
3 SPARKSQL CLI ...................................................................................................................................................... 13
3.1 运行环境说明 ................................................................................................................................................... 13
3.1.1
硬软件环境
.................................................................................................................................................... 13
3.1.2
机器网络环境
................................................................................................................................................ 14
3.2 配置并启动 ....................................................................................................................................................... 14
3.2.1
创建并配置
hive-site.xml ................................................................................................................................ 14
3.2.2
启动
Hive ......................................................................................................................................................... 15
3.2.3
启动
Spark
集群和
Spark SQL CLI .................................................................................................................. 15
3.2.4
命令参数
........................................................................................................................................................ 16
3.3 实战S
PARK SQL CLI ......................................................................................................................................... 17
3.3.1
获取订单每年的销售单数、销售总额
........................................................................................................ 17
3.3.2
计算所有订单每年的总金额
........................................................................................................................ 18
3.3.3
计算所有订单每年最大金额订单的销售额
................................................................................................ 20
4 SPARK THRIFT SERVER ..................................................................................................................................... 21
4.1 配置并启动 ....................................................................................................................................................... 21
4.1.1
创建并配置
hive-site.xml ................................................................................................................................ 21
4.1.2
启动
Hive ......................................................................................................................................................... 23
4.1.3
启动
Spark
集群和
Thrift Server ....................................................................................................................... 23
4.1.4
命令参数
........................................................................................................................................................ 24
4.2 实战T
HRIFT SERVER .......................................................................................................................................... 25
4.2.1
远程客户端连接
............................................................................................................................................ 25
4.2.2
基本操作
........................................................................................................................................................ 26
4.2.3
计算所有订单每年的订单数
........................................................................................................................ 28
4.2.4
计算所有订单月销售额前十名
.................................................................................................................... 29
4.2.5
缓存表数据
.................................................................................................................................................... 31
4.2.6
在
IDEA
中
JDBC
访问
..................................................................................................................................... 32

第 3 页 共 34 页 出自石山园,博客地址:http://www.cnblogs.com/shishanyuan
SparkSQL 简介
1 SparkSQL 的发展历程
1.1 Hive and Shark
SparkSQL 的前身是 Shark,给熟悉 RDBMS 但又不理解 MapReduce 的技术人员提供快速
上手的工具,Hive 应运而生,它是当时唯一运行在 Hadoop 上的 SQL-on-Hadoop 工具。但
是 MapReduce 计算过程中大量的中间磁盘落地过程消耗了大量的 I/O,降低的运行效率,为
了提高 SQL-on-Hadoop 的效率,大量的 SQL-on-Hadoop 工具开始产生,其中表现较为突出
的是:
MapR 的 Drill
Cloudera 的 Impala
Shark
其中 Shark 是伯克利实验室 Spark 生态环境的组件之一,它修改了下图所示的右下角的内
存管理、物理计划、执行三个模块,并使之能运行在 Spark 引擎上,从而使得 SQL 查询的速度
得到 10-100 倍的提升。
1.2 Shark 和 SparkSQL
但是,随着 Spark 的发展,对于野心勃勃的 Spark 团队来说,Shark 对于 Hive 的太多依赖
(如采用 Hive 的语法解析器、查询优化器等等),制约了 Spark 的 One Stack Rule Them All
的既定方针,制约了 Spark 各个组件的相互集成,所以提出了 SparkSQL 项目。SparkSQL 抛

第 4 页 共 34 页 出自石山园,博客地址:http://www.cnblogs.com/shishanyuan
弃原有 Shark 的代码,汲取了 Shark 的一些优点,如内存列存储(In-Memory Columnar
Storage)、Hive 兼容性等,重新开发了 SparkSQL 代码;由于摆脱了对 Hive 的依赖性,SparkSQL
无论在数据兼容、性能优化、组件扩展方面都得到了极大的方便,真可谓“退一步,海阔天空”。
数据兼容方面 不但兼容 Hive,还可以从 RDD、parquet 文件、JSON 文件中获取数据,
未来版本甚至支持获取 RDBMS 数据以及 cassandra 等 NOSQL 数据;
性能优化方面 除了采取 In-Memory Columnar Storage、byte-code generation 等
优化技术外、将会引进 Cost Model 对查询进行动态评估、获取最佳物理计划等等;
组件扩展方面 无论是 SQL 的语法解析器、分析器还是优化器都可以重新定义,进行扩
展。
2014 年 6 月 1 日 Shark 项目和 SparkSQL 项目的主持人 Reynold Xin 宣布:停止对 Shark
的开发,团队将所有资源放 SparkSQL 项目上,至此,Shark 的发展画上了句话,但也因此发
展出两个直线:SparkSQL 和 Hive on Spark。
其中 SparkSQL 作为 Spark 生态的一员继续发展,而不再受限于 Hive,只是兼容 Hive;而
Hive on Spark 是一个 Hive 的发展计划,该计划将 Spark 作为 Hive 的底层引擎之一,也就是
说,Hive 将不再受限于一个引擎,可以采用 Map-Reduce、Tez、Spark 等引擎。
1.3 SparkSQL 的性能
Shark 的出现,使得 SQL-on-Hadoop 的性能比 Hive 有了 10-100 倍的提高:

第 5 页 共 34 页 出自石山园,博客地址:http://www.cnblogs.com/shishanyuan
那么,摆脱了 Hive 的限制,SparkSQL 的性能又有怎么样的表现呢?虽然没有 Shark 相对于
Hive 那样瞩目地性能提升,但也表现得非常优异:
为什么 SparkSQL 的性能会得到怎么大的提升呢?主要 SparkSQL 在下面几点做了优化:
A:内存列存储(In-Memory Columnar Storage)
SparkSQL 的表数据在内存中存储不是采用原生态的 JVM 对象存储方式,而是采用内存列存储,
如下图所示。
剩余33页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0