spark性能调优之广播大变量
来源:互联网 发布:网络技术员需要会什么 编辑:程序博客网 时间:2024/05/16 10:54
广播变量
广播变量允许程序员将一个只读的变量缓存在每台机器上,而不用在任务之间传递变量。广播变量可被用于有效地给每个节点一个大输入数据集的副本。Spark还尝试使用高效地广播算法来分发变量,进而减少通信的开销。
Spark的动作通过一系列的步骤执行,这些步骤由分布式的洗牌操作分开。Spark自动地广播每个步骤每个任务需要的通用数据。这些广播数据被序列化地缓存,在运行任务之前被反序列化出来。这意味着当我们需要在多个阶段的任务之间使用相同的数据,或者以反序列化形式缓存数据是十分重要的时候,显式地创建广播变量才有用。
其实就是SparkContext的broadcast()方法,传入你要广播的变量,即可
final Broadcast<Map<String, Map<String, IntList>>> broadcast = sc.broadcast(fastutilDateHourExtractMap);
使用广播变量的时候,直接调用广播变量(Broadcast类型)的value() / getValue() ,可以获取到之前封装的广播变量
Map<String, Map<String, IntList>> dateHourExtractMap =broadcast.value();
比如,50个executor,1000个task。一个map,10M:
默认情况下,1000个task,1000份副本。10G的数据,网络传输,在集群中,耗费10G的内存资源。
如果使用了广播变量。50个execurtor,50个副本。500M的数据,网络传输,而且不一定都是从Driver传输到每个节点,还可能是就近从最近的
节点的executor的bockmanager上拉取变量副本,网络传输速度大大增加;500M的内存消耗。
真实的使用场景待后续开发!
阅读全文
0 0
- spark性能调优之广播大变量
- spark性能调优之广播大变量
- Spark性能调优:广播大变量broadcast
- Spark性能调优之——在实际项目中广播大变量
- 51.性能调优之广播大变量
- 性能调优-广播大变量
- Spark之广播变量
- Spark---性能调优之广播共享数据
- spark之广播共享变量broadcast
- Spark Broadcast 广播变量
- Spark开发-广播变量
- Spark的广播变量
- Spark大师之路:广播变量(Broadcast)源码分析
- Spark Core核心编程之广播变量剖析
- spark中的广播变量broadcast
- spark广播变量和累加器
- Spark中广播变量知识点
- spark更新广播变量实例
- Java内存模型(四)-锁
- 为什么IT行业工作那么火爆,仍然人才短缺
- Visual Studio代码前出现虚线的问题
- HDU 2677 Dota all stars 【dfs练习】
- canvas-刮刮乐
- spark性能调优之广播大变量
- 微信开发常用技巧(1)-微信分享页用户名称带输入法头像解决方案
- ES2015(ES6)(上)
- 补零与频谱泄露
- leetcode 524. Longest Word in Dictionary through Deleting
- MySQL查询优化方法
- caffe 生成train.txt和val.txt文件 shell语句
- 排序算法
- 封装适配器