我知道YARN是集群的资源管理,它可以根据资源可用性将核心和内存分配给Spark作业。
让我们想象一个场景,您运行Spark作业A,将2个分区的RDD保存为HDFS中的文本部分文件(假设两个分区在不同的节点中进行处理),然后您要运行Spark作业B进行加载将文件放入RDD。对于Spark作业B,最佳方案是YARN重用持久保存零件文件的节点以创建Spark执行程序。如果YARN使用其他一些节点,则必须通过网络将数据从最初存储到这些节点的位置传送出去,这效率不高。
所以我想知道Spark和YARN如何处理这种情况?