Spark大型电商项目实战-及其改良(2) RDD优化效果不稳定的真正原因
首先看没有map join的第2任务:
时间线如下
接着是对应id的算子计算时间表
Stage Id | Description | Submitted | Duration | Tasks: Succeeded/Total | Input | Output | Shuffle Read | Shuffle Write |
---|---|---|---|---|---|---|---|---|
13 | 2019/01/29 11:19:02 | 59 ms |
41/41
|
235.3 KB | ||||
12 | 2019/01/29 11:19:02 | 0.1 s |
41/41
|
383.2 KB | 235.3 KB | |||
11 | 2019/01/29 11:19:02 | 95 ms |
41/41
|
99.3 KB | 246.2 KB | |||
9 | 2019/01/29 11:19:01 | 0.5 s |
41/41
|
767.7 KB | 99.3 KB | |||
8 | 2019/01/29 11:19:01 | 0.5 s |
41/41
|
752.0 KB | ||||
7 | 2019/01/29 11:19:01 | 0.3 s |
1/1
|
15.7 KB | ||||
10 | 2019/01/29 11:19:01 | 0.5 s |
41/41
|
137.0 KB |
城市区域表(对应id 10)和商品列表(对应id 7)的数据量比较小,但在集群中的运行时间还是比较长的
不过因为是并行化运行,点击记录(对应id 8)的处理很快就完毕
并且id 9(把数据转换为key是区域+商品id,value是城市信息的组合)的运行时间也不长
在程序只是简单转换为RDD的情况下也能发挥优化效果
相比上述程序,speedUp版程序执行效率没有多大提升。
时间线如下
时间表如下
Stage Id | Description | Submitted | Duration | Tasks: Succeeded/Total | Input | Output | Shuffle Read | Shuffle Write |
---|---|---|---|---|---|---|---|---|
17 | 2019/01/29 11:19:03 | 53 ms |
41/41
|
246.7 KB | ||||
16 | 2019/01/29 11:19:03 | 0.1 s |
41/41
|
475.6 KB | 246.7 KB | |||
15 | 2019/01/29 11:19:02 | 0.6 s |
41/41
|
475.9 KB |
把城市区域表和商品列表转换为broadcast大变量,给id 15的算子进行map join的做法反而增加了driver的计算量,并且由于被统一到一个算子中运算,丢失了并行化的优势
像12月那次的调试,还出现了优化后运行时间倒挂的情况,就是id 15的运行时间拖慢了(map join用的HashMap,不知道是不是这个原因)
算上job id 2的运行时间(才28ms...)speedUp的运行时间比不带speedUp的短了20%
另外由于只有3台,数据倾斜造成的运算拖慢很难表现出来,此处就不演示均衡数据优化了
Spark大型电商项目实战-及其改良(2) RDD优化效果不稳定的真正原因的更多相关文章
- Spark大型电商项目实战-及其改良之番外(1)-将spark前端页面效果高效拷贝至博客
Spark大型电商项目实战-及其改良这个系列的时间轴展示图一直在变....1-3篇是用图直接表示时间轴,用一段简陋的html代码表示时间表.第4篇开始才是用比较完整的前端效果,能移动.缩放时间轴,鼠标 ...
- Spark大型电商项目实战-及其改良(1) 比对sparkSQL和纯RDD实现的结果
代码存在码云:https://coding.net/u/funcfans/p/sparkProject/git 代码主要学习https://blog.csdn.net/u012318074/artic ...
- Spark大型电商项目实战-及其改良(3) 分析sparkSQL语句的性能影响
之前的运行数据被清除了,只能再运行一次,对比一下sparkSQL语句的影响 纯SQL的时间 对应时间表 th:first-child,.table-bordered tbody:first-child ...
- Spark大型电商项目实战-及其改良(4) 单独运行程序发现的问题
之前的运行结果比对发现,有1个函数的作用在2个job里面是相同的,但是对应的计算时间却差太远 于是把4个job分开运行.虽说使用的数据不同,但是生成数据的生成器是相同的,数据排布差距不大,数据量也是相 ...
- 16套java架构师,高并发,高可用,高性能,集群,大型分布式电商项目实战视频教程
16套Java架构师,集群,高可用,高可扩展,高性能,高并发,性能优化,设计模式,数据结构,虚拟机,微服务架构,日志分析,工作流,Jvm,Dubbo ,Spring boot,Spring cloud ...
- Java 18套JAVA企业级大型项目实战分布式架构高并发高可用微服务电商项目实战架构
Java 开发环境:idea https://www.jianshu.com/p/7a824fea1ce7 从无到有构建大型电商微服务架构三个阶段SpringBoot+SpringCloud+Solr ...
- SpringBoot电商项目实战 — ElasticSearch接入实现
如今在一些中大型网站中,搜索引擎已是必不可少的内容了.首先我们看看搜索引擎到底是什么呢?搜索引擎,就是根据用户需求与一定算法,运用特定策略从互联网检索出制定信息反馈给用户的一门检索技术.搜索引擎依托于 ...
- SpringBoot电商项目实战 — 前后端分离后的优雅部署及Nginx部署实现
在如今的SpringBoot微服务项目中,前后端分离已成为业界标准使用方式,通过使用nginx等代理方式有效的进行解耦,并且前后端分离会为以后的大型分布式架构.弹性计算架构.微服务架构.多端化服务(多 ...
- C# 大型电商项目性能优化(一)
经过几个月的忙碌,我厂最近的电商平台项目终于上线,期间遇到的问题以及解决方案,也可以拿来和大家多做交流了. 我厂的项目大多采用C#.net,使用逐渐发展并流行起来的EF(Entity Framewor ...
随机推荐
- js数组指定位置添加删除
示例参考:http://www.w3school.com.cn/jsref/jsref_splice.asp
- 操作系统与cpu
- JVM性能调优总结
引自其它博客 : https://www.cnblogs.com/donaldlee2008/p/5469685.html 注 : 该条同样适用于Tomcat调优 调优配置说明 堆大小设置JVM 中最 ...
- linux获取网络信息函数
获取IP地址 int sys_getIP(char *ip_addr) { ] = {"ifconfig eth0 | grep inet | cut -d: -f2 | cut -d' ' ...
- 【JVM】-NO.113.JVM.1 -【JDK11 HashMap详解-4-resize()】
Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...
- Cocos Creater 监听程序到后台和重新到前台
cocos creator前后台切换当玩家在玩游戏时,突然接了一个电话,此时游戏会被切到后台待机,所有的声音播放都会停止,等打完电话,回到游戏,游戏又会被切回前台来,需要手动播放声音.可使用如下代码 ...
- Splunk 简单笔记
Splunk Notes source="c:\logs\abc.log" | rex field=url "(?<=\/)(?<ApiId>\w+?) ...
- MUI 返回顶部
//绑定滚动到顶部按钮事件 if ($("#scroll-up").length > 0) { var scrollToTopBox = $("#scroll-up ...
- JavaScript Object中的函数assign
Object函数提供了一个叫做assign的函数,用来合并多个对象. Object.assign(...): 你可以传递多个对象给该函数,这些对象中的自有且可枚举的属性,会被拷贝给第一个对象. var ...
- UGUI血条跟随
定义常量 public class Content { //当前UI分辨率 public const float UI_Width = 1366f; public const float UI_Hei ...