Apache火花数据局部性算法

时间:2016-01-24 20:57:52

标签: apache-spark scheduling bigdata

我想知道在安排任务时用于识别火花数据位置的算法? 我们是否需要像YARN这样的集群管理器来执行此操作,如果是,那么调度任务的基础算法是什么?

1 个答案:

答案 0 :(得分:0)

这取决于。如果您的数据采用键值对的形式,则Spark通过分区器处理数据位置(通常通过散列键,但您可以定义自定义分区器或使用RangePartitioner根据您的数据优化您的位置)。如果您的数据没有给出密钥,那么通常它只是以每个文件为基础保留数据(如果您有很少的大文件可能会有问题,因为您可能无法以最佳并行性工作)。如果您的数据太分散或太局部化,您可以分别使用重新分区(numPartitions)和合并(numPartitions)来优化您要使用的分区数。

以下是如何创建自定义分区程序的示例:

How to Define Custom partitioner for Spark RDDs of equally sized partition where each partition has equal number of elements?