Spark的这些事<四>——SparkSQL功能测试结果
2016-12-14 16:43
399 查看
一、Spark与Hive的差异
(1)、in 不支持子查询(2.0支持https://issues.apache.org/jira/browse/SPARK-4226)
eg: select * from tb_test1 where serv_number in (select serv_number from tb_test1 where serv_number=138);
(2)、minus 不支持
(3)、intersect 不支持
二、 性能效率
注:
spark执行时均采用单核、1G内存执行脚本(如提高执行内存 执行效率会更快)
本次测试的事实表数据量为千万级别
![](https://img-blog.csdn.net/20161214164245879?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvV2luZHlRQ0Y=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
综上,直接count(*)时,sparksql执行速度比hive高5倍,如果对执行内存扩大,对spark相关参数调优,则会更快。由于spark把计算放到内存中,所以会比MR更快,当然当数据量大于执行节点内存时,spark也会在在HDFS上直接计算,这是速度会有所下降,保证节点数以及各节点内存,才能更好的发挥spark的计算优势。
三、 结果比对
根据上面我们实践的整合Spark VS Hive,sparksql执行速度比hive高5倍之多,如果对执行内存扩大,对spark相关参数调优,则会更快。由于spark把计算放到内存中,所以会比MR更快,当然当数据量大于执行节点内存时,spark也会在在HDFS上直接计算,这是速度会有所下降,保证节点数以及各节点内存充足,才能更好的发挥spark的计算优势。
在执行复杂统计分析时,完全可以使用Spark SQL来替代Hive,至少会提高几倍的速度,对于一些基于Hive统计应用,随着应用的增多,可能每天需要更多的离线运算,有些报表对于与执行效率也需要提高。除了对Hive查询语句进行优化之外,应该说优化空间不大,所以这个时候可以考虑使用Spark平台来实现统计分析,而且,Spark集群可以线性扩展,对于一些调优也更容易一些。另外,Spark的发展超级迅猛,新版本频繁发布,而且在后期的版本中还会在性能方面进行大幅改进。
Spark的这些事系列文章:
Spark的这些事<一>——Windows下spark开发环境搭建
Spark的这些事<二>——几个概念
Spark的这些事<三>——spark常用的Transformations 和Actions
Spark的这些事<四>——SparkSQL功能测试结果
(1)、in 不支持子查询(2.0支持https://issues.apache.org/jira/browse/SPARK-4226)
eg: select * from tb_test1 where serv_number in (select serv_number from tb_test1 where serv_number=138);
(2)、minus 不支持
(3)、intersect 不支持
二、 性能效率
注:
spark执行时均采用单核、1G内存执行脚本(如提高执行内存 执行效率会更快)
本次测试的事实表数据量为千万级别
综上,直接count(*)时,sparksql执行速度比hive高5倍,如果对执行内存扩大,对spark相关参数调优,则会更快。由于spark把计算放到内存中,所以会比MR更快,当然当数据量大于执行节点内存时,spark也会在在HDFS上直接计算,这是速度会有所下降,保证节点数以及各节点内存,才能更好的发挥spark的计算优势。
三、 结果比对
根据上面我们实践的整合Spark VS Hive,sparksql执行速度比hive高5倍之多,如果对执行内存扩大,对spark相关参数调优,则会更快。由于spark把计算放到内存中,所以会比MR更快,当然当数据量大于执行节点内存时,spark也会在在HDFS上直接计算,这是速度会有所下降,保证节点数以及各节点内存充足,才能更好的发挥spark的计算优势。
在执行复杂统计分析时,完全可以使用Spark SQL来替代Hive,至少会提高几倍的速度,对于一些基于Hive统计应用,随着应用的增多,可能每天需要更多的离线运算,有些报表对于与执行效率也需要提高。除了对Hive查询语句进行优化之外,应该说优化空间不大,所以这个时候可以考虑使用Spark平台来实现统计分析,而且,Spark集群可以线性扩展,对于一些调优也更容易一些。另外,Spark的发展超级迅猛,新版本频繁发布,而且在后期的版本中还会在性能方面进行大幅改进。
Spark的这些事系列文章:
Spark的这些事<一>——Windows下spark开发环境搭建
Spark的这些事<二>——几个概念
Spark的这些事<三>——spark常用的Transformations 和Actions
Spark的这些事<四>——SparkSQL功能测试结果
相关文章推荐
- Spark的这些事<四>—Spark on yarn 动态资源配置
- Vertica的这些事<四>—— VSQL常用命令
- Spark的这些事<三>——spark常用的Transformations 和Actions
- spark基础知识之 spark RDD <四>
- Spark的这些事<二>——几个概念
- Spark的这些事<一>——Windows下spark开发环境搭建
- 响应式微服务 in Java 译 --Asynchronous Development Model<四>
- UBOOT-2010-03在S3C2440上的移植<四>------------支持NANDFLASH
- 定义分数类中<<和>>运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- GL音乐播放器--代码实现<四>--进度控制和可隐藏的音量控制
- python + selenium <四>
- 1#include<stdio.h> #include<string.h> int deng(char a[],ch、用函数实现登陆功能(三次机会),然后在主函数中根据调用后的结果判断 登陆成功与否。
- UML参考手册 第三部分 参 考 资 料 第13章 术 语 大 全 <四>
- Python 爬虫入门<四>——代理服务器
- 设计模式<四>——代理模式
- jquery选择器(原创)<四>
- windows游戏编程<四>X86 32位保护模式下的内存管理概述(一)
- 黑马程序员——面向对象<四> 笔记第六篇
- 黑马程序员 Java基础<四>---> 异常
- Android实战简易教程<四>(ScrollView和HorizontalScrollView动态添加控件并提供事件监听)