云环境中的Spark数据位置

时间:2018-03-22 18:29:32

标签: apache-spark hdfs hdinsight azure-data-lake

在HDInsight群集中运行Spark作业并从Azure Data Lake Store读取数据时,我发现我的任务的位置级别似乎总是设置为PROCESS_LOCAL。但是,我不太明白如何在云环境中实现这样的数据位置。

Azure是否实际上将我的代码移动到接近数据的位置,这可以通过常规HDFS完成,或者是否将地点级别设置为PROCESS_LOCAL,而实际上数据是通过网络加载的?

换句话说,Azure是否以某种方式将HDInsight工作节点配置到ADLS中的数据附近,或者我在Spark UI中看到的位置级别的解释是什么?

1 个答案:

答案 0 :(得分:1)

首先,PROCESS_LOCAL是最佳可能的地方级别。在您的情况下,这意味着不需要改组。这反过来意味着您的Spark应用程序不需要在工作程序之间移动任何数据,因此能够非常快速地执行您的工作。此外,这意味着Azure群集的资源足以使您可以立即加载数据集的所有分区,并在同一个流程中执行所有这些分区。

超过地区的有用资源:

http://www.waitingforcode.com/apache-spark/spark-data-locality/read

http://www.russellspitzer.com/2017/09/01/Spark-Locality/