Bootstrap

【大数据】-- spark 读取 Maxcompute 优化

目录

1、情景再现

2、Locality Level 知识点介绍

3、问题分析与解决

3.1、分析

3.2、解决


1、情景再现

      当使用 Spark 2.3 读取 odps (Maxcompute)表时,发现下游 rdd 的位置优先处于 RACK_LOCAL,说明数据在同一机架的不同节点上。需要通过网络传输数据及文件 IO,这个 Locality Level 比 NODE_LOCAL 慢。

2、Locality Level 知识点介绍

  • PROCESS_LOCAL: 数据在同一个 JVM 中,即同一个 executor 上。这是最佳数据 locality,也是用户期望看到的。
  • NODE_LOCAL: 数据在同一个节点上。比如数据在同一个节点的另一个 executor上;或在 HDFS 上,恰好有 block 在同一个节点上。速度比 PROCESS_LOCAL 稍慢,因为数据需要在不同进程之间传递或从文件中读取。
;