2-Spark-1-性能调优-数据倾斜2-Join/Broadcast的使用场景
2024-08-23 09:41:05
技术点:RDD的join操作可能产生数据倾斜,当两个RDD不是非常大的情况下,可以通过Broadcast的方式在reduce端进行类似(Join)的操作:
broadcast是进程级别的,只读的。
broadcast 可以适用于小表的广播,通过广播到对应节点的内存中(受blockManager的管理),该节点的Rdd通过mapPartitions方法,并通过blockmanager获取到broadcast的内容,进行对相同的key进行(join)操作。
map方法是将遍历rdd的每个partitions中的每条记录,mapPartitions是遍历到rdd的每个Partitions,相当是基于一个数组(相当于每个partition的缓存)进行批量操作。
适用场景:这种通过Broadcast广播的方式适用于小表,不适用于RDD的数据量非常大的情况,可能会导致OOM,并且对于Gc也是一个比较大的负担(broadcast的变量占用的内存,很容易就会成为Jvm中老年代的成员,且占用较大)。
最新文章
- html5开发之viewport使用
- Redis持久化-数据丢失及解决
- HDU 3333 Turing Tree --树状数组+离线处理
- Hadoop-env.sh[翻译]
- 【BZOJ】【2938】【POI2000】病毒
- 关于在Struts2框架下实现文件的上传功能
- C# 文件管理类 Directory
- 自己画一个ActivityIndicatorView-b
- HDU 4916 树分治
- Entity Framework 学习高级篇1—改善EF代码的方法(上)
- 初识ajax
- RabbitMQ资料
- mac brew install error
- php 字符串固定长度,不够补充其他字符串
- C语言函数部分
- Elasticsearch学习之配置小记
- python练习:一行搞定-统计一句话中每个单词出现的个数
- 怎样更新CentOS6.5的yum源
- win32 注册表操作
- ASP.NET 5 RC 2:UrlRouting 设置(不包含MVC6的UrlRouting设置)
热门文章
- ES6深入浅出-5 新版对象-1.如何创建对象
- 封装Email相关的操作
- 【Spring】基于@Aspect的AOP配置
- [译]使用Pandas读取大型Excel文件
- Linux的桌面虚拟化技术KVM(四)——虚拟机镜像格式对比与转换
- python通过socket实现多个连接并实现ssh功能详解
- npm 全局安装路径 在哪里
- Qt563x86vs2015.编译错误(TypeError: Property 'asciify' of object Core::Internal::UtilsJsExtension(0x????????) is not a function)
- mysql备份时过滤掉某些库 以及 去掉";Warning: Using a password on the command line interface can be insecure.";提示信息
- python 线程队列PriorityQueue(优先队列)(37)