开发者社区> 问答> 正文

spark优化中数据本地性是什么?

spark优化中数据本地性是什么?

展开
收起
xin在这 2021-12-06 01:13:56 345 0
1 条回答
写回答
取消 提交回答
  • 数据本地性是有很大的影响在Spark job的程序中。如果数据和代码在一起,计算速度就会非常快。但是如果数据和代码是分开的,一个必须要移动到另外一个上去。通常情况下是把序列化后的代码移动到数据所在的节点上,因为代码的大小比数据小很多(移动计算,而不是移动数据)。Spark构建的调度就是基于数据本地性。

    数据本地性指的是数据和代码有多近(close)。由近及远有下面locality level:

    1.PROCESS_LOCAL:数据在一个相同的正在运行的代码的JVM中。

    2.NODE_LOCAL:数据在同一个节点。

    3.NO_PREF:数据不管在哪里都可以快速的访问到。(无本地性)

    4.RACK_LOCAL:数据在相同的机架上。但是数据在同一个机架的不同server上,需要通过网络传输。

    5.ANY:数据在网络的其他地方,不在一个机架上。

    Spark会优先安排作业在最佳的locality level上,但是不太可能。

    2021-12-06 01:14:15
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载