Spark简介系列03 join

通信策略

通信模式 spark通信策略
点对点通信(node-to-node communication strategy) all-to-all通信shuffle join
逐点计算(per node computation strategy) broadcast join

注意:通信策略的优化会随着时间推移,在新版本中会有改进,内部优化器会随着基于成本的优化策略的改进,而更新对应join策略。

从宏观层面考虑

大表和大表关联,最终是shuffle join的过程,尤其是没有经过合理分区、分桶的情况下。每个节点都要和所有其他节点进行通信,由于网络会因通信量而阻塞,所很耗时。

大表和小表关联,当小表足够小、可放入单个节点的内存中且有剩余空间时,通常使用broadcast join更高效,小表被复制到每个节点,然后每个节点独立执行。

注意:Spark可自动识别哪些适用于广播通信模式,但也可以手动指定,前提是我们明确知道这么做是有益的。

小表和小表的关联,尽量默认Spark自己做出的优化决定。

 

 

你可能感兴趣的:(Spark简介,spark)