我想知道Spark或Flink执行引擎(主调度程序)如何为每个块找到合适的worker。
namenode将能够告诉他们块的确切位置,但是这项任务是由Spark和Flink的作业管理器完成的,还是这是YARN发挥作用的地方?
我只能告诉Flink。JobManager
向HDFS Namenode
请求块信息,并计算块任务分配。首先,为每个TaskManger
(TM)分配本地块。如果TM没有任何本地块,它将获得分配的远程块。如果没有可用的本地块,则将所有剩余的块均匀地分配给所有tm(以获得良好的负载平衡)。