Hadoop 教程 - Yarn中容量调度器多队列提交

在Hadoop YARN中,使用容量调度器(Capacity Scheduler)进行多队列提交是实现资源有效管理和任务隔离的重要手段。以下是配置和使用容量调度器进行多队列提交的基本步骤和注意事项:

1. 修改配置文件

首先,你需要编辑YARN的配置文件capacity-scheduler.xml,这个文件通常位于Hadoop的配置目录中,例如$HADOOP_CONF_DIR。在这个文件中,你可以定义多个队列,并为每个队列配置资源配额和策略。

基本配置示例

假设我们要为Hive、Spark和Flink分别创建队列,并为默认队列和其他队列设置资源分配。

<property>
  <name>yarn.scheduler.capacity.root.queues</name>
  <value>default,hive,spark,flink</value>
</property>

<property>
  <name>yarn.scheduler.capacity.root.default.capacity</name>
  <value>30</value>
  <!-- 设置默认队列占用总资源的30% -->
</property>

<property>
  <name>yarn.scheduler.capacity.root.hive.capacity</name>
  <value>20</value>
  <!-- Hive队列占用总资源的20% -->
</property>

<property>
  <name>yarn.scheduler.capacity.root.spark.capacity</name>
  <value>30</value>
  <!-- Spark队列占用总资源的30% -->
</property>

<property>
  <name>yarn.scheduler.capacity.root.flink.capacity</name>
  <value>20</value>
  <!-- Flink队列占用总资源的20% -->
</property>

<!-- 可以为每个队列设置更多配置,如最大容量、最小用户限制等 -->

2. 重启YARN服务

完成配置后,需要重启YARN的ResourceManager和NodeManager服务以使配置生效。

3. 提交作业到特定队列

当你提交MapReduce、Spark或其他类型的应用程序时,可以通过参数指定将作业提交到哪个队列。例如,使用以下命令提交Spark作业到spark队列:

spark-submit \
  --class com.example.MySparkJob \
  --master yarn \
  --queue spark \
  mySparkApp.jar

或者,如果你在提交MapReduce作业,可以这样操作:

hadoop jar myMapReduceJob.jar \
  -Dmapreduce.job.queue.name=spark \
  myJobClass

注意事项

  • 队列命名规则:队列名应遵循YARN的命名规范,避免使用特殊字符。
  • 资源保证与限制:确保为每个队列合理配置资源保证和上限,以避免资源过度集中或浪费。
  • 访问控制:考虑使用YARN的ACL(Access Control Lists)来限制用户或组对特定队列的访问权限。
  • 监控与调整:定期监控队列的资源使用情况,并根据实际情况调整队列配置以优化资源利用。

通过上述步骤,你可以成功地在Hadoop YARN中实现多队列的容量调度,从而更有效地管理不同应用和业务模块的资源需求。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值