Hadoop 教程 - Yarn中公平调度器多队列提交

在Hadoop YARN中,公平调度器(Fair Scheduler)设计用于自动平衡资源分配,确保所有作业公平地共享集群资源。要实现多队列提交并配置公平调度器,你需要进行如下步骤:

1. 配置公平调度器

首先,确保你的YARN配置使用的是公平调度器。这通常在yarn-site.xml中通过设置yarn.resourcemanager.scheduler.class属性来完成:

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

2. 编辑fair-scheduler.xml

接着,编辑或创建fair-scheduler.xml文件(同样位于$HADOOP_CONF_DIR目录下),以定义队列结构和配置:

<allocations>
  <!-- 定义队列 -->
  <queue name="default">
    <minResources>1024mb,1vcores</minResources>
    <!-- 最小资源保证 -->
    <maxResources>2048mb,2vcores</maxResources>
    <!-- 资源使用上限 -->
    <maxRunningApps>2</maxRunningApps>
    <!-- 同时运行的最大应用数 -->
    <schedulingPolicy>fair</schedulingPolicy>
    <!-- 使用公平调度策略 -->
  </queue>
  
  <queue name="high-priority">
    <minResources>2048mb,1vcore</minResources>
    <maxResources>4096mb,2vcores</maxResources>
    <maxRunningApps>1</maxRunningApps>
    <schedulingPolicy>fair</schedulingPolicy>
    <weight>2.0</weight>
    <!-- 队列权重,影响资源分配的优先级 -->
  </queue>
  
  <!-- 其他队列配置... -->
  
  <!-- 可选:定义默认队列分配策略 -->
  <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
</allocations>

3. 重启YARN服务

配置完后,重启YARN服务(ResourceManager和NodeManager)以应用新配置。

4. 提交作业到特定队列

在提交作业时,指定作业应该运行的队列:

  • 对于MapReduce作业:
hadoop jar myMapReduceJob.jar \
  -Dmapreduce.job.queue.name=high-priority \
  myJobClass
  • 对于Spark作业:
spark-submit \
  --class com.example.MySparkJob \
  --master yarn \
  --queue high-priority \
  mySparkApp.jar

注意事项

  • 队列配置:合理配置队列的最小资源、最大资源、权重等,以适应不同的工作负载和优先级。
  • 动态调整:公平调度器支持动态添加和删除队列,无需重启YARN服务。
  • ACL设置:通过配置ACL,可以控制哪些用户或组可以提交作业到特定队列。
  • 监控与调整:使用YARN的Web UI监控队列和应用程序的资源使用情况,根据实际运行状况适时调整配置。

通过上述步骤,你可以在YARN中使用公平调度器实现多队列提交,有效管理和优化资源分配,满足不同作业的执行需求。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值