1.6.2、Spark 中应用 fastul 的场景
!)、如果算子函数使用了外部变量。第一,你可以使用 A 广播变量优化。第二,
可以使用 D 序列化类库,提升序列化性能和效率。第三,如果外部变量是某种比较大的
集合,那么可以考虑使用 9/ 改写外部变量,首先从源头上就减少内存的占用,通过广
播变量进一步减少内存占用,再通过 D 序列化类库进一步减少内存占用。
.)、在你的算子函数里,也就是 要执行的计算逻辑里面,如果有逻辑中,出现,要
创建比较大的 8、I 等集合,可能会占用较大的内存空间,而且可能涉及到消耗性能
的遍历、存取等集合操作,此时,可以考虑将这些集合类型使用 9/ 类库重写,使用了
9/ 集合类以后,就可以在一定程度上,减少 创建出来的集合类型的内存占用。避
免 内存频繁占满,频繁唤起 -,导致性能下降。
1.6.3、关于 fastul 调优的说明
9/ 其实没有你想象中的那么强大,也不会跟官网上说的效果那么一鸣惊人。广播变量、
D 序列化类库、9/,都是之前所说的,对于性能来说,类似于一种调味品,烤鸡,
本来就很好吃了,然后加了一点特质的孜然麻辣粉调料,就更加好吃了一点。分配资源、
并行度、3 架构与持久化,这三个就是烤鸡。、 、9/,类似于调料。
比如说,你的 作业,经过之前一些调优以后,大概 " 分钟运行完,现在加上
、 、9/,也许就是优化到 .L 分钟运行完、或者更好一点,也许就是 .2 分
钟、.; 分钟。
5 调优,!; 分钟。:A D 用 A D 改写,执行本地聚合,也许 !" 分钟。跟
公司申请更多的资源,比如资源更大的 +&3% 队列,! 分钟。
1.6.4、fastul 的使用
在 中引用 9/ 的包
M N
M:4N9/M:4N
M/94N9/M/94N
MN;"LMN
M N
速度比较慢,可能是从国外的网去拉取 ) 包,可能要等待 ; 分钟,甚至几十分钟,不等
IM4:N相当于 4I
基本都是类似于 4I 的格式,前缀就是集合的元素类型。特殊的就是 8,4.48,
代表了 映射的元素类型。除此之外,还支持 )、9。