【问题标题】:Apache Spark Join operation across multiple nodes跨多个节点的 Apache Spark Join 操作
【发布时间】:2018-07-28 16:43:41
【问题描述】:

我使用的是 Spark2.1 版本,我有一个关于 spark join 如何在内部工作的基本问题。

假设有 2 组对 RDD,如下所示,分布在 2 个数据节点上:

员工 RDD(员工 ID 和部门):节点 1: (100,亚当) (101,约翰) (102,特里)

从属 RDD(员工 ID 和从属人数):节点 1 (100,3) (101,2) (202,3)

员工 RDD(员工 ID 和部门):节点 2: (200,汤姆) (201,维多利亚) (202,玛丽亚)

从属 RDD(员工 ID 和从属人数):节点 2 (102,5) (200,1) (201,4)

基于上面的数据分布,如果join发生在上面的2 Pair RDD上,那么join操作将如何发生在数据locality上,因为 在节点 1 中,Spark 将无法在节点 1 中找到 102 的匹配键。

但是这个join的值在节点2中是可用的。那么spark会从所有节点加载数据来完成join操作吗?如果发生这种情况会不会成为瓶颈?

【问题讨论】:

    标签: apache-spark join nodes operation


    【解决方案1】:

    您在问题中描述的内容称为 Spark 中的 shuffle 操作,您说得对,它会造成瓶颈,建议将 shuffle 操作保持在最低限度。它会造成瓶颈,但这是不可避免的。

    洗牌操作的相关资源: https://0x0fff.com/spark-architecture-shuffle/

    shuffle 操作示例:reduce,join

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-12
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多