spark-sql性能测试
2016-06-06 16:02
323 查看
一,测试环境
1) 硬件环境完全相同:
包括:cpu/内存/网络/磁盘Io/机器数量等
2)软件环境:
相同数据
相同测试用例
3) 不同计算框架,其中spark-sql 都是基于yarn的
4)spark-sql executor内存总量不大于 hive使用内存峰值
二,不同框架在两个测试用例下的性能对比
1)bu_出租车需求数计算.sql
![](/download/attachments/36604108/image2016-3-18%2017%3A57%3A50.png?version=1&modificationDate=1458295237000&api=v2)
2)专快播单,接单情况.sql
spark-sql 1.6保持分配600G的内存不变,在不同数据量下进行测试:
![](/download/attachments/36604108/image2016-3-23%2019%3A53%3A3.png?version=1&modificationDate=1458734136000&api=v2)
3) 听单
![](/download/attachments/36604108/image2016-3-24%2015%3A54%3A7.png?version=1&modificationDate=1458806198000&api=v2)
4)
三,总结
1)spark-sql 1.6 相对于spark-sql 1.4 提高30%的性能;
2)不同应用spark-sql相对于hive性能提升幅度不同,但是都会提高很多
3)不同存储+压缩格式,存储空间不同
4)hive的stage-1的mr个数与数据存储空间大小成正比;
注:mr 的个数与block大小有关,所以在split切分设为110M以后,资源占用大概两倍;
5)在数据量接近或远大于分配内存资源的情况下,spark-sql速度比下降,但相对于hive,仍就很快(并且hive资源占用过多);
1) 硬件环境完全相同:
包括:cpu/内存/网络/磁盘Io/机器数量等
2)软件环境:
相同数据
相同测试用例
3) 不同计算框架,其中spark-sql 都是基于yarn的
4)spark-sql executor内存总量不大于 hive使用内存峰值
二,不同框架在两个测试用例下的性能对比
1)bu_出租车需求数计算.sql
orc | orc (split 110M) | parquet +snappy | parquet +gzip | |
spark-sql 1.4 | 2mins, 7sec | 1mins,40sec | Parquet does not support decimal | Parquet does not support decimal |
spark-sql 1.6 | 1mins, 30sec | 大概1mins,4sec | 大概1mins,4sec | 大概1mins,4sec |
hive | 20mins | 18.5mins | 大概20mins | 大概20mins |
所占空间(raw倍数) | 1 | 1 | 1.6 | 1 |
![](/download/attachments/36604108/image2016-3-18%2017%3A57%3A50.png?version=1&modificationDate=1458295237000&api=v2)
2)专快播单,接单情况.sql
spark-sql 1.6保持分配600G的内存不变,在不同数据量下进行测试:
200G | 550G | 1.1T | |
---|---|---|---|
spark-sql 1.4 | 11-12mins | ||
spark-sql 1.6 | 7-8mins | 22mins | 51mins |
hive | 15mins | 50mins | 将近5T内存,就没测试 |
![](/download/attachments/36604108/image2016-3-23%2019%3A53%3A3.png?version=1&modificationDate=1458734136000&api=v2)
3) 听单
time | |
---|---|
spark-sql 1.6 | 190s |
hive | 1117s |
![](/download/attachments/36604108/image2016-3-24%2015%3A54%3A7.png?version=1&modificationDate=1458806198000&api=v2)
4)
三,总结
1)spark-sql 1.6 相对于spark-sql 1.4 提高30%的性能;
2)不同应用spark-sql相对于hive性能提升幅度不同,但是都会提高很多
3)不同存储+压缩格式,存储空间不同
4)hive的stage-1的mr个数与数据存储空间大小成正比;
注:mr 的个数与block大小有关,所以在split切分设为110M以后,资源占用大概两倍;
5)在数据量接近或远大于分配内存资源的情况下,spark-sql速度比下降,但相对于hive,仍就很快(并且hive资源占用过多);
相关文章推荐
- mysql查询某属性下所有值的前N条记录
- mysql 索引 增删查
- SQL server安装步骤
- Windows下 bat调用TSql问题
- C#关于SQL数据库连接的相关函数!
- Zabbix实战企业监控之MySQL监控
- SQL注入总结
- MySQL的多列索引
- RF-连接数据库
- JSP+Servlet+oracle 的一个分页查询小应用
- MySQL基于mysqldump及lvmsnapshot备份恢复
- oracle传输表空间技术测试和测试中遇到的问题
- Mysql表使用中,Mysql下修复MYISAM表, MySQL数据表损坏的巧妙修复
- mysql中Table is read only的解决
- 最土团购数据库驱动函数
- UNIX时间戳 按月分组 按年月分组 按日分组 mysql语句
- 2.Redis学习(二)redis配置
- ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法
- Mon Jun 06 2016 08:00:00 GMT+0800 (中国标准时间)
- 1.redis的安装