Hadoop在Linux上主要通过YARN(Yet Another Resource Negotiator)进行任务调度和管理。YARN是Hadoop 2.0引入的资源管理和任务调度平台,它将资源管理和作业调度/监控分离开来,使得各种计算框架可以共享同一个YARN平台,从而大大提高了资源利用率并扩展了Hadoop的应用范围。
YARN的任务调度策略主要包括以下几种:
FIFO(先进先出)调度器:按照任务提交的顺序依次执行任务。这种方式实现简单,但可能导致长任务阻塞短任务,降低整体效率。
Capacity Scheduler:允许多个队列共存,每个队列可以独占一定比例的资源,同时也能够共享空闲资源。这种调度器适合资源需求波动较大的场景。
Fair Scheduler:为所有运行的作业公平地分配资源,适合多用户环境。Fair Scheduler支持资源抢占,当一个资源池在一定时段内没有得到公平共享时,它会终止该资源池所获得的过多的资源,同时把这些释放的资源让给那些资源不足的资源池。
基于权重的调度算法:根据作业或用户的权重值决定资源分配比例,权重高的可获得更多计算资源,特别适合多用户共享环境。
这些调度策略可以根据集群的资源需求和配置来选择合适的策略,以实现资源的高效利用和任务的合理调度。