当我们谈论数据局部性时,无论是MR还是Spark。我有点困惑,数据局部性是指从本地机器直接从OS读取数据(使用本地文件读取协议)还是仅基于HDFS协议从本地访问数据?
答案 0 :(得分:0)
一个非常基本的问题,我们都能正确理解。
在Spark中,RDD的五个特征之一是“可选地,计算每个分割的首选位置列表(例如HDFS文件的块位置)”(参见{{3 API scaladoc)。
每当DAGScheduler
计划执行Spark作业的任务时,它都会遍历首选位置列表并尝试向该计算节点“下订单”运行Spark执行程序。如果成功,计算尽可能接近其所需的数据。
这样做的好处是,计算不是移动数据(由于网络带宽和数据大小,这将更加昂贵)。