Spark on yarn在启动执行程序时处理数据位置

时间:2017-04-26 07:05:27

标签: apache-spark hdfs yarn

我正在考虑火花执行器的静态分配。 Spark on yarn是否考虑原始输入数据集的数据局部性在启动执行程序时在spark应用程序中使用。

如果它确实如此,那么当spark上下文初始化时请求并分配spark执行器。在spark应用程序中可能有多个原始输入数据集可能物理上驻留在许多不同的数据节点上。我们无法在所有节点上运行执行程序。

我理解spark会在执行程序上调度任务时处理数据局部性(如上所述https://spark.apache.org/docs/latest/tuning.html#data-locality)。

1 个答案:

答案 0 :(得分:0)

你说的是正确的

  

spark在执行程序上调度任务时负责数据的本地化

当Yarn启动执行程序时,它不知道您的数据在哪里。因此,在理想情况下,您可以在群集的所有节点上启动执行程序。但是,更现实的是,您仅在节点的子集上启动。

现在,这并不一定是坏事,因为HDFS固有地支持冗余,这意味着可能存在spark已请求数据的节点上存在的数据副本。