Spark 不同的 Locality Level
- PROCESS_LOCAL: 数据和 task 在同一个executor jvm 中,最好的就是这种 locality。
- NODE_LOCAL: 数据在同一个节点上。比如数据在同一个节点的另一个 executor上;或在 HDFS 上,恰好有 block 在同一个节点上。速度比 PROCESS_LOCAL 稍慢,因为数据需要在不同进程之间传递或从文件中读取
- NO_PREF: 数据从哪里访问都一样快,不需要位置优先
- RACK_LOCAL: 数据在同一机架的不同节点上。需要通过网络传输数据及文件 IO,比 NODE_LOCAL 慢
ANY: 数据在非同一机架的网络上,速度最慢。