Sur*_*aja 5 hadoop-yarn apache-spark
假设有一个 Spark 作业将从 HDFS 读取一个名为 records.txt 的文件,并执行一些转换和一个操作(将处理后的输出写入 HDFS)。作业将提交到 YARN 集群模式
还假设 record.txt 是一个 128 MB 的文件,其 HDFS 复制块之一也在节点 1 中
可以说 YARN 正在分配的是 NODE 1 中的执行程序。
YARN 如何在输入数据所在的节点准确分配执行器?
谁告诉 YARN,记录.txt 的复制 HDFS 块之一在 NODE 1 中可用?
Spark 应用程序如何找到数据局部性?它是由在 Application Master 内部运行的 Driver 完成的吗?
YARN 知道数据本地性吗?
这里的基本问题是:
YARN 知道数据本地性吗?
YARN“知道”应用程序告诉它什么并且它理解集群的结构(拓扑)。当应用程序发出资源请求时,它可以包括特定的位置约束,在分配资源时可能会或可能不会满足。
如果无法指定约束,YARN(或任何其他集群管理器)将根据其对集群拓扑的了解尝试提供最佳替代匹配。
那么应用程序如何“知道”呢?
如果应用程序使用支持某种形式数据局部性的输入源(文件系统或其他),它可以查询其对应的目录(HDFS 中的名称节点)以获取它想要访问的数据块的位置。
在更广泛的意义上,Spark RDD 可以preferredLocations
根据特定的RDD
实现为集群管理器(不一定是 YARN)定义,稍后可以将其转换为资源约束。
归档时间: |
|
查看次数: |
1035 次 |
最近记录: |