CentOS下Hadoop作业调度配置指南
一、作业调度器选择
Hadoop支持多种作业调度器,需根据业务场景选择:
- FIFO调度器(默认):按作业提交顺序执行,适合单用户或简单场景,但无法处理多用户资源争抢。
- Capacity Scheduler(容量调度器):将集群资源划分为多个队列(如
prod生产队列、dev开发队列),每个队列分配固定资源比例(如prod占70%、dev占30%),支持多租户资源隔离,适合企业多部门共享集群。 - Fair Scheduler(公平调度器):动态平衡资源分配,确保所有作业公平共享集群资源(如
real-time实时作业和batch批处理作业各占50%资源),适合交互式作业或多租户公平性要求高的场景。
二、Capacity Scheduler配置(以CentOS为例)
-
修改
yarn-site.xml(启用容量调度器)
在$HADOOP_HOME/etc/hadoop/yarn-site.xml中添加以下配置,指定使用CapacityTaskScheduler:<property> <name>yarn.resourcemanager.scheduler.classname> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulervalue> property> -
配置队列结构(
capacity-scheduler.xml)
在$HADOOP_HOME/etc/hadoop/capacity-scheduler.xml中定义队列及资源分配:<property> <name>yarn.scheduler.capacity.root.queuesname> <value>prod,dev,testvalue> property> <property> <name>yarn.scheduler.capacity.root.prod.capacityname> <value>70value> property> <property> <name>yarn.scheduler.capacity.root.dev.capacityname> <value>20value> property> <property> <name>yarn.scheduler.capacity.root.test.capacityname> <value>10value> property> <property> <name>yarn.scheduler.capacity.root.prod.maximum-capacityname> <value>80value> property> -
配置队列权限(可选)
通过yarn.scheduler.capacity.root.queue-name.acl_submit_applications控制队列提交权限,例如仅允许dev用户组提交到dev队列:<property> <name>yarn.scheduler.capacity.root.dev.acl_submit_applicationsname> <value>dev-user-groupvalue> property> -
重启YARN服务
修改配置后,重启YARN服务使配置生效:$HADOOP_HOME/sbin/stop-yarn.sh $HADOOP_HOME/sbin/start-yarn.sh -
提交作业到指定队列
使用mapreduce.job.queuename参数指定作业所属队列,例如将作业提交到prod队列:hadoop jar your-job.jar YourMainClass -Dmapreduce.job.queuename=prod
三、Fair Scheduler配置(可选)
-
修改
yarn-site.xml(启用公平调度器)<property> <name>yarn.resourcemanager.scheduler.classname> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairSchedulervalue> property> -
配置公平调度策略(
fair-scheduler.xml)
在$HADOOP_HOME/etc/hadoop/fair-scheduler.xml中定义资源池及公平分配规则:<allocations> <pool name="realtime"> <weight>3weight> <minResources>20% 10vcoresminResources> <maxResources>50% 30vcoresmaxResources> pool> <pool name="batch"> <weight>1weight> <minResources>10% 5vcoresminResources> pool> allocations> -
重启YARN服务
同样需要重启YARN服务使配置生效。
四、优化建议
- 数据本地化优化:调整
yarn.scheduler.capacity.node-locality-delay(默认40),增加本地化尝试次数,减少网络传输开销。 - 资源隔离:通过
yarn.scheduler.capacity.queue-name.user-limit-factor(默认1)限制单用户资源占用,避免单个用户独占队列资源。 - 监控队列状态:通过YARN ResourceManager Web UI(默认
http://resourcemanager-host:8088)查看队列资源使用情况,及时调整配置。
以上配置可根据实际业务需求调整队列比例、资源限制等参数,实现Hadoop集群的高效作业调度。
以上就是关于“CentOS Hadoop作业调度如何配置”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm