当前位置: 首页 > 知识库问答 >
问题:

Hadoop(EMR)集群公平调度器正在完成FIFO而不是并行

翟默
2023-03-14

这是我第一次尝试配置纱线调度器,但它不像我希望的那样工作。集群最初作为FIFO工作,我试图让作业并行运行。我已经在yarn-site.xml的顶部添加了

  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
  </property>


  <property>
    <name>yarn.scheduler.fair.allocation.file</name>
    <value>/etc/hadoop/conf.empty/fair-scheduler.xml</value>  
  </property>

然后添加文件/etc/hadoop/conf.empty/fail-scheduler.xml:

<allocations>
    <queue name="root">
        <weight>1.0</weight>
        <schedulingPolicy>fair</schedulingPolicy>
        <aclSubmitApps> </aclSubmitApps>
        <aclAdministerApps>*</aclAdministerApps>
    </queue>
    <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
    <queuePlacementPolicy>
        <rule name="specified" create="true"/>
        <rule name="user" create="true"/>
    </queuePlacementPolicy>
</allocations>

因此,在这之后,我停止并启动了yarn资源管理器,我在yarn应用控制台上看到了Fair Scheduler!但是,当尝试在集群上运行多个作业时,AWS EMR控制台只显示一个作业正在运行,另外两个作业挂起。此外,YARN控制台只显示在队列root.hadoop中运行的一个作业,而看不到其他作业(这些作业将在该作业完成后运行)。

那么,如何使这些作业并行运行呢?

共有1个答案

艾俊晖
2023-03-14

通过yarn-site.xml设置调度程序实际上是有效的。如果您拉出纱线资源管理器,调度程序实际上会显示更改,但问题是在提交AWS EMR步骤时。EMR步骤本质上是按顺序运行的,这意味着AWS在前一步完成之前不会向YARN提交下一个作业。于是一个人只好把工作直接交给纱线去看好处;然而,EMR步骤最近似乎发生了变化。如果使用EMR版本5.28.0,AWS EMR现在支持并行步骤执行:https://AWS.amazon.com/about-aws/whats-new/2019/11/amazon-emr-now-allock-yo-to-run-multiple-steps-in-parallec-running-steps-and-integrat-with-aws-steps-functions/。

 类似资料:
  • tail-f/var/log/hadoop-hdfs/hadoop-hdfs-namenode-ip-172-30-2-148.log 2016-09-21 11:54:14,533 INFO BlockStateChange(8020上的IPC Server handler 10):Block*InvalidateBlocks:添加blk_107374750_6677到172.30.2.189:

  • 我有气流作业,它们在EMR集群上运行良好。我需要的是,假设我有4个气流作业,需要一个EMR集群,比如说20分钟来完成任务。为什么我们不能在DAG运行时创建一个EMR集群,一旦作业完成,它将终止创建的EMR集群。

  • 我写了一个脚本,检查Hadoop块报告,如果需要,它运行Hadoop平衡器。我读了这篇关于hdfs平衡器设计的文章,看起来我们需要在单独的机器上运行hdfs平衡器,这样它就不会重载名称节点。 我的这个理解对不对,请指正。 从这个输出来看,balancer似乎只在NameNode上运行。所以我的问题是我们总是需要只在name节点上运行平衡器吗?还是我们需要做一些配置才能让这个均衡器在网关机器上运行?

  • 我的环境:我正在尝试通过Spark Thrift服务器连接Cassandra。然后,我在Hive Metastore中创建一个元表,其中保存了Cassandra表数据。在一个web应用程序中,我通过JDBC驱动程序连接到元表。我已经为Spark Thrift服务器启用了公平调度。 问题:当我通过JMeter为100个用户执行300秒的并发负载测试时,初始请求的响应时间为次秒(比如前30秒)。然后响

  • 它是100%保证的线程,首先得到wait_for_completion_timeout会唤醒第一次调用完成?也许我错了,但是我看了下面的场景:线程A调用wait_for_completion_timeout并进入睡眠。当完成被调用时,它醒来并完成执行在函数do_wait_for_common。现在假设另一个线程B调用wait_for_completion_timeout. x- 然后继续睡觉。所以

  • Mesos 项目是源自 UC Berkeley 的对集群资源进行抽象和管理的开源项目,类似于操作系统内核,用户可以使用它很容易地实现分布式应用的自动化调度。 同时,Mesos 自身也很好地结合和主持了 Docker 等相关容器技术,基于 Mesos 已有的大量应用框架,可以实现用户应用的快速上线。 本章将介绍 Mesos 项目的安装、使用、配置以及核心的原理知识。