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程序的时候需预估所需的内存,当超过一定阈值后,性能将急剧下降。如有不对或不足的地方请指正。

版权声明:原创作品,转载请保持文章完整性,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。

博客地址:http://www.ninqing.net/

微博地址:http://weibo.com/ninqing

Posted in spark.Tagged spark性能测试.

【转】Spark性能测试报告的更多相关文章

  1. Spark性能测试报告与调优参数

    1.代码中尽量避免group by函数,如果需要数据聚合,group形式的为rdd.map(x=>(x.chatAt(0),x)).groupbyKey().mapValues((x=>x ...

  2. 【转载】Spark性能优化指南——高级篇

    前言 数据倾斜调优 调优概述 数据倾斜发生时的现象 数据倾斜发生的原理 如何定位导致数据倾斜的代码 查看导致数据倾斜的key的数据分布情况 数据倾斜的解决方案 解决方案一:使用Hive ETL预处理数 ...

  3. 【转载】 Spark性能优化指南——基础篇

    转自:http://tech.meituan.com/spark-tuning-basic.html?from=timeline 前言 开发调优 调优概述 原则一:避免创建重复的RDD 原则二:尽可能 ...

  4. 【转】【技术博客】Spark性能优化指南——高级篇

    http://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651745207&idx=1&sn=3d70d59cede236e ...

  5. 【转】Spark性能优化指南——基础篇

    http://mp.weixin.qq.com/s?__biz=MjM5NDMwNjMzNA==&mid=2651805828&idx=1&sn=2f413828d1fdc6a ...

  6. intel Xeon(R) CPU E5-2650 v2 性能测试报告

                                          intel  Xeon(R) CPU E5-2650 v2                                 ...

  7. Spark性能调优之代码方面的优化

    Spark性能调优之代码方面的优化 1.避免创建重复的RDD     对性能没有问题,但会造成代码混乱   2.尽可能复用同一个RDD,减少产生RDD的个数   3.对多次使用的RDD进行持久化(ca ...

  8. [Spark性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析

    本課主題 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质 ...

  9. [Spark性能调优] 第二章:彻底解密Spark的HashShuffle

    本課主題 Shuffle 是分布式系统的天敌 Spark HashShuffle介绍 Spark Consolidated HashShuffle介绍 Shuffle 是如何成为 Spark 性能杀手 ...

随机推荐

  1. [HDU 3535] AreYouBusy (动态规划 混合背包 值得做很多遍)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3535 题意:有n个任务集合,需要在T个时间单位内完成.每个任务集合有属性,属性为0的代表至少要完成1个 ...

  2. 为什么需要auto_ptr_ref

    这几天开始拜读侯捷先生和孟岩先生的译作<C++标准程序库:自修教程与参考手册> .两位先生确实译功上乘,读得很顺.但是读到P55页关于auto_ptr_ref的讨论,却百思不得其解:为什么 ...

  3. HDFS副本机制&负载均衡&机架感知&访问方式&健壮性&删除恢复机制&HDFS缺点

    副本机制 1.副本摆放策略 第一副本:放置在上传文件的DataNode上:如果是集群外提交,则随机挑选一台磁盘不太慢.CPU不太忙的节点上:第二副本:放置在于第一个副本不同的机架的节点上:第三副本:与 ...

  4. 海外支付:抵御信用卡欺诈的CyberSource

    海外支付:抵御信用卡欺诈的CyberSource 吴剑 2014-06-04 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian 吴剑 http://www.cn ...

  5. The Ninth Hunan Collegiate Programming Contest (2013) Problem H

    Problem H High bridge, low bridge Q: There are one high bridge and one low bridge across the river. ...

  6. HIVE配置文件

    进入HIVE_HOME/conf 编辑文件hive-site.xml,内容如下:(这是伪分布式模式) 主要声明了以下几个内容: 数据仓库地址 数据库连接地址 数据库连接驱动 数据库连接用户名 数据库连 ...

  7. 解决“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件问题

    这些提示的问题完全没有必要去理会,因为一般情况下你点击本地windows调试,会报出这样问题很正常. 网上一些介绍什么要去选项卡栏勾选window连接器什么鬼,不建议用该方式,一旦你勾选那个方式虽然不 ...

  8. c# 动态调用webserver

    object[] paramList = new object[1]; paramList.SetValue("123456",0);  //参数值,参数位置 var result ...

  9. Oracle 删表前验证表名是否存在并且删除

    DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_TABLES WHERE TABLE_NAME = UPPER('tableN ...

  10. web调试技巧

    接触web不久,遇到了一些"奇怪"的问题,现将一些调试技巧总结如下:    1.欲添加某一样式,点击右键,查看源码    2.样式有问题,点击右键,审查元素 当然,还有一些经验总结 ...