【发布时间】:2016-01-11 10:12:41
【问题描述】:
与 spark 一样,我们可以直接从 HDFS 加载数据,RDD 的分区数将等于文件的分区数。 HDFS 以保留重复的文件块而闻名,所以问题是 spark 如何处理此问题以及如何管理 RDD 分区。
如果我问错了问题,请纠正我。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql spark-streaming
与 spark 一样,我们可以直接从 HDFS 加载数据,RDD 的分区数将等于文件的分区数。 HDFS 以保留重复的文件块而闻名,所以问题是 spark 如何处理此问题以及如何管理 RDD 分区。
如果我问错了问题,请纠正我。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql spark-streaming
您希望对数据进行计算,因此根据任务将在何处执行(哪个物理节点将保留持久数据),您将使用最近的可用副本(相同机架等)或根据位置执行调度数据可用。这部分由 YARN 调度程序处理。
【讨论】:
正如您可以从 spark 用户指南中查看的那样,有一些关于您可以设置的数据位置的配置(摘自 spark 1.6 用户指南 http://spark.apache.org/docs/latest/configuration.html):
spark.locality.wait
默认:3s
在放弃并在较少本地节点上启动之前等待启动数据本地任务的时间。相同的等待将用于逐步通过多个位置级别(进程本地、节点本地、机架本地,然后是任何)。也可以通过设置 spark.locality.wait.node 等来自定义每个关卡的等待时间。如果你的任务很长并且局部性很差,你应该增加这个设置,但默认值通常效果很好。
spark.locality.wait.node
默认:spark.locality.wait
自定义局部性等待节点局部性。例如,您可以将其设置为 0 以跳过节点位置并立即搜索机架位置(如果您的集群有机架信息)。
spark.locality.wait.process
默认值:spark.locality.wait
自定义位置等待进程位置。这会影响尝试访问特定执行程序进程中缓存数据的任务。
spark.locality.wait.rack
默认值:spark.locality.wait
自定义位置等待机架位置
【讨论】: