AWS EMR:master 节点是否在 EMR 集群中存储 hdfs 数据?

AWS EMR: Does master node stores hdfs data in EMR cluster?

master 节点 - 这个节点是否将 hdfs 数据存储在 aws emr 集群中? 任务节点——如果这个节点不存储hdfs数据,它是纯计算节点吗?在这种情况下,hadoop 是否转移到任务节点?这不会破坏数据本地化计算的优势吗?

(除了没有核心或任务实例的 master-only 集群的边缘情况...)

Master实例不存储任何HDFS数据,也不作为计算节点。主实例 运行 服务,例如 YARN ResourceManager 和 HDFS NameNode。

唯一存储数据的节点是那些运行HDFS DataNode,它们只是核心实例。

核心和任务实例都是运行 YARN NodeManager,因此是“计算节点”。

关于你的问题,“在这种情况下,hadoop是否传输到任务节点”,我假设你问的是Hadoop是否将(HDFS)数据传输到任务实例,以便它们可以对HDFS数据执行计算。从某种意义上说,是的,任务实例可以从存储块的核心实例远程读取 HDFS 块。

的确,这意味着任务实例永远无法利用 HDFS 数据的数据局部性,但在很多情况下这并不重要,例如对于从其他节点读取随机数据的任务,或者无论如何都从远程存储读取数据的任务(例如,Amazon S3)。此外,根据所使用的核心实例类型,请记住,即使是 HDFS 块也可能存储在远程存储(即 EBS)中。也就是说,即使您的任务实例正在从远程 DataNode 或远程服务(如 S3 或 EBS)读取数据,它甚至可能不会引起您的注意,以至于您需要担心数据局部性。