阅读量:0
CentOS Hadoop 作业调度配置指南
一 核心概念与选择
- Hadoop 的作业调度由 YARN 负责,常见调度器有三种:FIFO(先进先出,简单但不适合多租户)、Capacity Scheduler(多队列、容量保证与弹性共享,适合生产多租户)、Fair Scheduler(按权重与缺额动态均衡,强调公平)。在 Hadoop 2.7.2+ 之后默认使用 Capacity Scheduler;部分发行版(如 CDH)默认使用 Fair Scheduler。选择建议:多队列与资源隔离优先选 Capacity,强调作业间公平与弹性选 Fair,快速验证或单用户环境可用 FIFO。
二 前置准备与基础配置
- 环境要求:CentOS 7+、JDK 8、SSH 免密;Hadoop 安装并配置环境变量(
$HADOOP_HOME、PATH)。 - 关键配置文件与示例参数(位于
$HADOOP_HOME/etc/hadoop/):- core-site.xml
fs.defaultFS hdfs://namenode:8020 - hdfs-site.xml
dfs.replication 3 dfs.namenode.name.dir /data/nn dfs.datanode.data.dir /data/dn - yarn-site.xml(示例为每台 NodeManager 物理内存 4 GB、4 vcores)
yarn.resourcemanager.hostname rm-host yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.resource.memory-mb 4096 yarn.nodemanager.resource.cpu-vcores 4 yarn.scheduler.minimum-allocation-mb 1024 yarn.scheduler.maximum-allocation-mbvalue>8192 yarn.scheduler.capacity.maximum-am-resource-percent 0.5 - mapred-site.xml
mapreduce.framework.name yarn mapreduce.jobhistory.address rm-host:10020 mapreduce.jobhistory.webapp.address rm-host:19888
- core-site.xml
- 启动与验证
- 首次启动需格式化 NameNode:
hdfs namenode -format - 启动集群:
start-dfs.sh、start-yarn.sh - 验证进程:
jps应看到 ResourceManager、NodeManager、JobHistoryServer、NameNode、DataNode。
- 首次启动需格式化 NameNode:
三 配置调度器
- 使用 Capacity Scheduler(默认)
- 确认调度器类:
yarn.resourcemanager.scheduler.class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler - 编辑
capacity-scheduler.xml,示例创建 dev(40%)/prod(60%) 两级队列:yarn.scheduler.capacity.root.queues dev,prod yarn.scheduler.capacity.root.dev.capacity 40 yarn.scheduler.capacity.root.dev.maximum-capacity 60 yarn.scheduler.capacity.root.dev.user-limit-factor 1 yarn.scheduler.capacity.root.dev.state RUNNING yarn.scheduler.capacity.root.prod.capacity 60 yarn.scheduler.capacity.root.prod.maximum-capacity 80 yarn.scheduler.capacity.root.prod.user-limit-factor 1 yarn.scheduler.capacity.root.prod.state RUNNING yarn.scheduler.capacity.root.acl_submit_applications * yarn.scheduler.capacity.root.acl_administer_queue * - 分发配置并重启 YARN(滚动重启亦可):
stop-yarn.sh→start-yarn.sh。
- 确认调度器类:
- 使用 Fair Scheduler
- 指定调度器类:
yarn.resourcemanager.scheduler.class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler - 创建
fair-scheduler.xml(示例:两级队列与队列放置策略)fair 0.5 - 分发配置并重启 YARN。
- 指定调度器类:
- 提交作业到指定队列
- MapReduce:
yarn jar your-job.jar YourMainClass -Dmapreduce.job.queuename=dev ... - Spark on YARN:
spark-submit --queue dev --master yarn ... - 提示:若队列不存在或 ACL 限制,作业会被拒绝或回退到默认队列(取决于配置)。
- MapReduce:
四 常用调优参数
- 容量调度关键项
yarn.scheduler.capacity.maximum-applications:集群最大并发应用数(默认 10000)yarn.scheduler.capacity.maximum-am-resource-percent:用于 AM 的资源占比(默认 0.2,建议结合并发与内存调小以控并发)yarn.scheduler.capacity.resource-calculator:资源比较器,推荐 DominantResourceCalculator(多维资源比较)yarn.scheduler.capacity.node-locality-delay:节点本地性延迟调度次数(通常设为同机架节点数)
- 节点与容器资源
yarn.nodemanager.resource.memory-mb/yarn.nodemanager.resource.cpu-vcores:节点可分配内存与 vcoreyarn.scheduler.minimum-allocation-mb/yarn.scheduler.maximum-allocation-mb:容器最小/最大分配
- 运行观察与排错
- 通过 ResourceManager Web UI 与 JobHistory Web UI 观察队列使用、应用排队与抢占情况;必要时调整队列容量、权重与 AM 占比。
五 常见问题与排查
- 端口冲突:若 8030/8040 等端口被占用,可在
yarn-site.xml调整,例如yarn.resourcemanager.scheduler.address=${rm-host}:8034yarn.nodemanager.localizer.address=${nm-host}:8041
- 日志聚集:便于排查失败作业
yarn.log-aggregation-enable=trueyarn.log.server.url=http://:19888/jobhistory/logs yarn.log-aggregation.retain-seconds=604800(保留 7 天)
- 配置生效:修改调度器或队列配置后需重启 YARN;多队列环境下注意队列 ACL 与容量边界,避免作业被拒或“卡在排队”。
以上就是关于“CentOS Hadoop作业调度怎么配置”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm