【转】Spark性能测试报告
RDD可以很好地适用于支持数据并行的批量分析应用,包括数据挖掘,机器学习,图算法等,因为这些程序通常都会在很多记录上执行相同的操作。RDD不太适合那些异步更新共享状态的应用,例如并行web爬行器。因此,我们的目标是为大多数分析型应用提供有效的编程模型,而其他类型的应用交给专门的系统。
关于RDD详见:
弹性分布式数据集:一种基于内存的集群计算的容(二):弹性分布式数据集(RDD)
硬件环境:
开发机器是 3台 Intel(R) Xeon(R) CPU E5440 @ 2.83GHz双核 2.8G 4G内存
操作系统:
Red Hat Enterprise Linux Server release 5.7 (Tikanga)
Spark配置:
三节点,每个节点2G内存,14 个维度,100个类别,10次迭代,使用不同大小样例文件分析。
结论1:定义0.8(数据量/2048/3)作为三节点的阈值,当运行数据在阈值内时性能成单调递增,当超过该阈值时,性能急剧下降,当超过阈值2%时性能下降53.11937%,当超过34.01326%,性能下降70.80896%
以下是测试数据:
| 序号 | 数据文件大小(M) | 记录条数 | 耗时 | 数据文件/耗时 | 数据/内存 | 数据/内存/节点数 |
| 0 | 33.33 | 147,106 | 10 | 3.333344 | 0.016274 | 0.005425 |
| 1 | 100 | 441,319 | 13 | 7.692317 | 0.048828 | 0.016276 |
| 2 | 166.67 | 735,533 | 15 | 11.11118 | 0.081382 | 0.027127 |
| 3 | 233.33 | 1,029,746 | 20 | 11.66652 | 0.113931 | 0.037977 |
| 4 | 341.33 | 1,506,371 | 23 | 14.8406 | 0.166665 | 0.055555 |
| 5 | 512 | 2,259,557 | 30 | 17.06666 | 0.25 | 0.083333 |
| 6 | 682.67 | 3,012,743 | 42 | 16.25402 | 0.333335 | 0.111112 |
| 7 | 853.33 | 3,765,929 | 45 | 18.96291 | 0.416665 | 0.138888 |
| 8 | 1,024.00 | 4,519,115 | 57 | 17.96494 | 0.5 | 0.166667 |
| 9 | 1,194.67 | 5,272,301 | 65 | 18.37953 | 0.583335 | 0.194445 |
| 10 | 1,365.33 | 6,025,487 | 73 | 18.70316 | 0.666665 | 0.222222 |
| 11 | 1,536.00 | 6,778,673 | 80 | 19.20001 | 0.75 | 0.25 |
| 12 | 1,706.67 | 7,531,859 | 95 | 17.96491 | 0.833335 | 0.277778 |
| 13 | 1,877.33 | 8,285,044 | 147 | 12.77097 | 0.916665 | 0.305555 |
| 14 | 2,048.00 | 9,038,230 | 104 | 19.6923 | 1 | 0.333333 |
| 15 | 2,218.66 | 9,791,416 | 113 | 19.63417 | 1.08333 | 0.36111 |
| 16 | 2,389.33 | 10,544,602 | 124 | 19.26881 | 1.166665 | 0.388888 |
| 17 | 2,560.01 | 11,297,788 | 175 | 14.62861 | 1.250005 | 0.416668 |
| 18 | 2,730.66 | 12,050,974 | 184 | 14.84056 | 1.33333 | 0.444443 |
| 19 | 2,901.34 | 12,804,160 | 164 | 17.69109 | 1.41667 | 0.472223 |
| 20 | 3,072.00 | 13,557,346 | 155 | 19.81934 | 1.5 | 0.5 |
| 21 | 3,242.67 | 14,310,532 | 162 | 20.01647 | 1.583335 | 0.527778 |
| 22 | 3,413.34 | 15,063,718 | 166 | 20.56231 | 1.66667 | 0.555557 |
| 23 | 3,754.68 | 16,570,089 | 179 | 20.97585 | 1.83334 | 0.611113 |
| 24 | 4,266.68 | 18,829,646 | 189 | 22.57501 | 2.08334 | 0.694447 |
| 25 | 4,500.01 | 19,859,392 | 209 | 21.53114 | 2.197271 | 0.732424 |
| 26 | 4,666.68 | 20,594,925 | 202 | 23.10235 | 2.278652 | 0.759551 |
| 27 | 4,766.68 | 21,036,244 | 202 | 23.5974 | 2.32748 | 0.775827 |
| 28 | 4,866.68 | 21,477,563 | 226 | 21.53396 | 2.376309 | 0.792103 |
| 29 | 4,966.68 | 21,918,882 | 220 | 22.5758 | 2.425137 | 0.808379 |
| 30 | 5,066.68 | 22,360,201 | 458 | 11.06261 | 2.473965 | 0.824655 |
| 31 | 5,120.01 | 22,595,577 | 463 | 11.05834 | 2.500005 | 0.833335 |
| 32 | 6,656.01 | 29,374,250 | 1010 | 6.59011 | 3.250005 | 1.083335 |
性能趋势图:
![]()
Spark配置:
一节点, 2G内存,14 个维度,100个类别,10次迭代。
结论2:定义0.9(数据量/2048)作为三节点的阈值,当运行数据在阈值内时性能成单调递增,当超过该阈值时,性能急剧下降,当超过阈值8.3334961%时性能下降57.61797318%,当超过18.18167291%,性能下降66.4701143%
当超过36.36441116%,性能下降94.14757913%
| 序号 | 数据文件大小(M) | 记录条数 | 耗时 | 数据文件/耗时 | 数据/内存 |
| 0 | 33.33 | 147,106 | 10 | 3.333344 | 0.016274 |
| 1 | 100.00 | 441,319 | 20 | 5.000006 | 0.048828 |
| 2 | 166.67 | 735,533 | 27 | 6.17288 | 0.081382 |
| 3 | 233.33 | 1,029,746 | 34 | 6.862657 | 0.113931 |
| 4 | 341.33 | 1,506,371 | 45 | 7.585197 | 0.166665 |
| 5 | 512.00 | 2,259,557 | 64 | 7.999997 | 0.25 |
| 6 | 682.67 | 3,012,743 | 85 | 8.031401 | 0.333335 |
| 7 | 853.33 | 3,765,929 | 102 | 8.365989 | 0.416665 |
| 8 | 1,024.00 | 4,519,115 | 118 | 8.67798 | 0.5 |
| 9 | 1,194.67 | 5,272,301 | 137 | 8.720216 | 0.583335 |
| 10 | 1,365.33 | 6,025,487 | 153 | 8.923729 | 0.666665 |
| 11 | 1,536.00 | 6,778,673 | 176 | 8.727279 | 0.75 |
| 12 | 1,706.67 | 7,531,859 | 193 | 8.84283 | 0.833335 |
| 13 | 1,877.33 | 8,285,044 | 223 | 8.41853 | 0.916665 |
| 14 | 2,048.00 | 9,038,230 | 574 | 3.567944 | 1 |
| 15 | 2,218.66 | 9,791,416 | 786 | 2.822724 | 1.08333 |
| 16 | 2,389.33 | 10,544,602 | 1134 | 2.106995 | 1.166665 |
| 17 | 2,560.01 | 11,297,788 | 5196 | 0.492688 | 1.250005 |
性能趋势图:
![]()
总论:在执行Spark程序的时候需预估所需的内存,当超过一定阈值后,性能将急剧下降。如有不对或不足的地方请指正。
版权声明:原创作品,转载请保持文章完整性,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。
Posted in spark.Tagged spark, 性能测试.
【转】Spark性能测试报告的更多相关文章
- Spark性能测试报告与调优参数
1.代码中尽量避免group by函数,如果需要数据聚合,group形式的为rdd.map(x=>(x.chatAt(0),x)).groupbyKey().mapValues((x=>x ...
- 【转载】Spark性能优化指南——高级篇
前言 数据倾斜调优 调优概述 数据倾斜发生时的现象 数据倾斜发生的原理 如何定位导致数据倾斜的代码 查看导致数据倾斜的key的数据分布情况 数据倾斜的解决方案 解决方案一:使用Hive ETL预处理数 ...
- 【转载】 Spark性能优化指南——基础篇
转自:http://tech.meituan.com/spark-tuning-basic.html?from=timeline 前言 开发调优 调优概述 原则一:避免创建重复的RDD 原则二:尽可能 ...
- 【转】【技术博客】Spark性能优化指南——高级篇
http://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651745207&idx=1&sn=3d70d59cede236e ...
- 【转】Spark性能优化指南——基础篇
http://mp.weixin.qq.com/s?__biz=MjM5NDMwNjMzNA==&mid=2651805828&idx=1&sn=2f413828d1fdc6a ...
- intel Xeon(R) CPU E5-2650 v2 性能测试报告
intel Xeon(R) CPU E5-2650 v2 ...
- Spark性能调优之代码方面的优化
Spark性能调优之代码方面的优化 1.避免创建重复的RDD 对性能没有问题,但会造成代码混乱 2.尽可能复用同一个RDD,减少产生RDD的个数 3.对多次使用的RDD进行持久化(ca ...
- [Spark性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析
本課主題 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质 ...
- [Spark性能调优] 第二章:彻底解密Spark的HashShuffle
本課主題 Shuffle 是分布式系统的天敌 Spark HashShuffle介绍 Spark Consolidated HashShuffle介绍 Shuffle 是如何成为 Spark 性能杀手 ...
随机推荐
- tarjan 边双连通分量 对点进行分组 每组点都在一个双连通分量里边
int dfn[N],low[N],id[N],s[N],p,num,t,son[N];//dfn记录dfs时间戳//low代表当前点到达的最小时间戳,id对点进行分组编号.num是时间戳//s临时存 ...
- @SessionAttributes与HttpSession
SessionAttributes注解将model中与它同名的属性保存在HttpSession中. 在controller的方法执行完毕后处理SessionAttributes注解并保存的,是Hand ...
- Android中 View not attached to window manager错误的解决办法
前几日出现这样一个Bug是一个RuntimeException,详细信息是这样子的:java.lang.IllegalArgumentException: View not attached to w ...
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
命名规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch – 体系架构,如ARM,MIPSvendor – 工具链提供商os – 目标操作系统 ...
- QWizard中运行时默认按钮显示英文问题
QWizard中运行时默认按钮在编译前设计界面的时候是显示中文的,运行的时候就变成英文了.. 后来是发现国际化的时候有问题,解决办法如下: 在main.cpp里加: QTranslator* tran ...
- cocos2d-x 中 TTF 字体文件的位置
cocos2d-x 中,字体文件需要保存在 fonts 文件夹中,如果字体路径中没有 fonts/ 会自动添加上这个文件夹. 如果字体名称没有 .ttf 后缀,也会自动加上这个后缀. unsigned ...
- win8或win8.1修改注册表失败的原因
win8 and win8.1 modify the registry need compiled to be different versions according to the os bits.
- 学习练习 java面向对象封装汽车
package com.hanqi; //汽车 public class Car { // 车牌 private String CheP; // 油箱容量 private double YouXRL ...
- JS常用的设计模式(17)—— 状态模式
状态模式主要可以用于这种场景 1 一个对象的行为取决于它的状态 2 一个操作中含有庞大的条件分支语句 回想下街头霸王的游戏. 隆有走动,攻击,防御,跌倒,跳跃等等多种状态,而这些状态之间既有联系又互相 ...
- 背景图片background-size兼容ie8以下浏览器解决
背景图片不够大,然后就想到用background-size:100%; 测试浏览器的时候发现ie8以下不兼容,图片会自动填充平铺过去,然后出现背景不好看的现象.解决方法: background-ima ...