我有两个集群,每个集群运行不同版本的Hadoop。我正在研究POC我需要了解YARN如何提供同时运行多个应用程序的功能,这是使用Classic Map Reduce Framework无法实现的。
Hadoop Classic: 我有一个wordcount.jar文件并在一个集群上执行(2个Mappers& 2 Reducers)。我并行开始了两个工作,一个幸运的人首先得到了两个映射器,完成了任务,然后开始了第二个工作。这是预期的行为。
Hadoop Yarn: 相同的wordcount.jar具有不同的集群(4个核心,因此总共4台机器)。由于Yarn没有预先指定mapper和reducer,因此任何核心都可以用作映射器或reducer。我还在这里同时提交了两份工作。 预期行为:两个作业都应该以每个2个映射器开始,或者以资源管理器分配的任何配置开始,但至少两个作业都应该启动。
现实:一项工作从3个映射器和1个减速器开始。第二份工作等到第一份工作完成。
有人可以帮助我了解行为,以及多节点群集最能体现并行行为吗?
答案 0 :(得分:0)
不确定这是否是确切原因,但Classic Hadoop和YARN架构使用不同的调度程序。经典Hadoop使用JobQueueTaskScheduler,而YARN默认使用CapacityScheduler。