我检查了几个文档,但我对Hadoop中保留数据局部性的任务调度有疑问。
假设当t
到达时,任务D1
的输入数据为t
且复制因子为3(这意味着我有3个D1副本存储在3个不同的服务器上),哪个更严重{ {1}}会被分配吗? (考虑默认调度程序)。
答案 0 :(得分:1)
Hadoop将尝试使用所有可用的映射器插槽。如果它有一种方法来分配任务保留数据的位置,那么它就会这样做(也就是说,如果包含D1副本的3个服务器中的一个具有可用的映射器插槽,它将尝试将其放在该服务器上)。如果这三台服务器上的所有映射器都被占用,但是有另一台具有可用映射器插槽的服务器,则任务将被放置在该映射器上。