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 ...
随机推荐
- C++———库函数cstring及string方法解读
1.string与cstring区别 <string>是C++标准库头文件.包含了拟容器class std::string的声明(不过class string事实上只是basic_stri ...
- kubernetes in action - Volumes
Volume解决Kubernetes的存储的问题 对于Pod使用的存储,抽象为volume,volume伴随着Pod的创建而创建,消失而同时消失,不能单独的创建 这样的好处,是存储的塑胶不会因为某个c ...
- Head First Python-Python简单处理文件
前面介绍了自定义格式化输出列表函数printList(),下面再介绍下格式化列表项及列表项的排序. 这里有一组列表数据,记录运动员跑步时间的,要求按照时间大小进行排序.这里每项数据记录的时间格式不一样 ...
- 转载--python模块
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
- vue框架与koa2服务器实现跨域通信
首先我们在vue中引入axios, npm install axios --save 在需要用到的页面引入axios import axios from "axios"; 用axi ...
- Elasticsearch学习笔记(五)索引元数据和集群元数据
一.索引元数据 执行:GET /ecommerce/product/1 返回结果: { "_index": "ecommerce", "_ty ...
- 学习h264 的语法规则,如何才能看懂H264 的官方文档
1. 今天想查h264 的帧率,查找资料如下: 首先要解析sps,得到两个关键的数值: num_units_in_tick, time_scale fps=time_scale/num_units_i ...
- Java注解之 @Target、@Retention简介
先来看一个Spring中的一个常用注解 package org.springframework.stereotype; import java.lang.annotation.Documented; ...
- JAVA时间Date工具类
package com.common.util; import java.text.DateFormat; import java.text.ParseException; import java.t ...
- cocos creator使用anysdk接入admob广告教程
http://lolling787.lofter.com/post/1f5b6553_12925042 cocos creator使用anysdk接入admob广告