Spark进阶篇——共享变量

目录

共享变量

广播变量

概述

原理

实现

总结

累加器

概述

实现

总结


共享变量

广播变量

概述

使用广播变量,每个executor的内存中,只驻留一份变量副本,而不是对每个task都传输一次变量,省去了很多的网络传输,对性能的提升有很大的帮助,而且通过高效的广播算法来减少传输代价。

使用广播变量的场景很多,Spark一种常见的优化方式就是小表广播,使用map join来代替reduce join,通过把小的数据集广播到各个节点上。节省了一次昂贵的shuffle操作。比如driver上有一行数据量很小的表,其他节点上的task都需要lookup这张表,那么driver可以先把这张表数据广播到各个executor节点,这样task就可以在本地查表了。

原理

Spark历史上采用了两种广播的方式,一种是通过http协议传输数据(目前已废除),另一种通过Torrent协议来传输数

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值