据我了解,当Yarn创建作业时,它会选择将待处理数据存储为工作节点的作业,因为移动数据比移动代码昂贵,本地处理将显着降低网络流量成本。但我的问题是,Yarn的工作是基于容器技术,如果具有数据的节点没有足够的资源来宣布容器?纱线会发生什么?
另一个问题是Spark是如何做同样的事情的?因为它是基于RDD的分区,这是数据的逻辑分区,而且通常Spark的Worker节点没有运行在同一台datanode机器上,不喜欢NodeManager for Yarn与HDFS共享同一台机器,它如何处理数据传输成本?以及它如何决定在哪里开展工作?