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. App can入门

    主干 主干可以认为是整个页面的整体框架布局 上图是截取与ZAKER(原生开发).正益无线(HTML5开发).ZAKER微博界面(原生开发)和HTML5中国(HTML5开发).参考上述界面我们看到大部分 ...

  2. [HDU 4417] Super Mario (树状数组)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题目大意:给你n个数,下标为0到n-1,m个查询,问查询区间[l,r]之间小于等于x的数有多少个 ...

  3. Java8新特性【转】

    地址:http://ifeve.com/java-8-features-tutorial/ 1.简介 毫无疑问,Java 8是自Java  5(2004年)发布以来Java语言最大的一次版本升级,Ja ...

  4. Rehat 5.8下oracle11g安装

    Oracle 11g Redhat 5安装  一.检查硬件是否满足要求 检查一内存 On Linux x86: At least 1 GB of RAM 内存至少1G To determine the ...

  5. IIS7.0设置404错误页,返回500状态码

    一般在II6下,设置自定义404错误页时,只需要在错误页中选择自定义的页面,做自己的404页面即可.但是在IIS7.0及以上时,设置完404错误页后,会发现状态码返回的是500,并且可能会引起页面乱码 ...

  6. 【Unity Shaders】学习笔记——SurfaceShader(九)Cubemap

    [Unity Shaders]学习笔记——SurfaceShader(九)Cubemap 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以 ...

  7. 用Java开发代理服务器

    基础知识 不管以哪种方式应用代理服务器,其监控HTTP传输的过程总是如下: 步骤一:内部的浏览器发送请求给代理服务器.请求的第一行包含了目标URL. 步骤二:代理服务器读取该URL,并把请求转发给合适 ...

  8. ios 获取通讯录的所有信息

    iOS获取通讯录全部信息 ABAddressBookRef addressBook = ABAddressBookCreate(); CFArrayRef results = ABAddressBoo ...

  9. [vsftp]500 OOPS: cannot change directory

    这个报错需要检查 1./etc/passwd 用户的主目录 2./etc/vsftpd/vuser_conf 下每个用户的local_root 3.每个用户目录给ftpuser加上rwx权限,一定要有 ...

  10. TCP/IP详解学习笔记(7)-- 初识运输层

    作为TCP和UDP协议的学习前奏,简单的介绍一下运输层的相关内容,方便对TCP,UDP的学习. 1.概述      运输层的任务主要是负责主机中两个进程之间的通信.      运输层的基本功能: 复用 ...