首页主机资讯CentOS Hadoop作业调度如何设置

CentOS Hadoop作业调度如何设置

时间2025-12-02 13:07:03发布访客分类主机资讯浏览1253
导读:CentOS 上 Hadoop 作业调度设置指南 一 核心概念与选择 Hadoop 的作业调度由 YARN 负责,核心组件包括 ResourceManager、NodeManager、ApplicationMaster、Container...

CentOS 上 Hadoop 作业调度设置指南

一 核心概念与选择

  • Hadoop 的作业调度由 YARN 负责,核心组件包括 ResourceManager、NodeManager、ApplicationMaster、Container。提交到集群的作业由 YARN 统一进行资源分配与调度。常见调度器有:
    • FIFO Scheduler:先进先出,简单但不适合多租户与混合负载。
    • Capacity Scheduler:按队列配额保障资源,适合多租户、容量隔离场景。
    • Fair Scheduler:按应用公平分配资源,兼顾效率与公平。
  • Hadoop 2.x 中,默认调度器通常为 Capacity Scheduler;在 Hadoop 2.5 版本附近,部分发行版默认可能为 Fair Scheduler,实际以集群配置为准。调度器通过参数 yarn.resourcemanager.scheduler.class 指定。

二 前置配置与基础参数

  • 确认运行模式与基础通信参数(示例值可按需调整):
    • mapred-site.xml 设置:
      • mapreduce.framework.name:yarn
      • yarn.app.mapreduce.am.resource.mb:1024
      • yarn.app.mapreduce.am.command-opts:-Xmx768m
    • yarn-site.xml 设置 NodeManager 必备服务:
      • yarn.nodemanager.aux-services:mapreduce_shuffle
      • yarn.nodemanager.aux-services.mapreduce.shuffle.class:org.apache.hadoop.mapred.ShuffleHandler
  • 资源配置边界(调度器粒度):
    • yarn.scheduler.minimum-allocation-mb / maximum-allocation-mb
    • yarn.scheduler.minimum-allocation-vcores / maximum-allocation-vcores
  • 节点资源(NodeManager 粒度,需与机器实际资源匹配):
    • yarn.nodemanager.resource.memory-mb
    • yarn.nodemanager.resource.cpu-vcores
  • 说明:上述参数均位于 $HADOOP_HOME/etc/hadoop/ 相应配置文件中,修改后需同步到所有节点并重启相关服务生效。

三 配置调度器与队列

  • 选择调度器(二选一,示例为启用 Capacity Scheduler):
    • yarn-site.xml 设置:
      • yarn.resourcemanager.scheduler.class:org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
    • 或在 capacity-scheduler.xml 中设置:
      • yarn.scheduler.capacity.scheduler.name:CapacityScheduler
  • 配置多队列与配额(示例:root 下创建 devprod 两个队列):
    • capacity-scheduler.xml 中设置关键项(示例值可按需调整):
      • root 总容量:yarn.scheduler.capacity.root.capacity:100
      • 开发队列:yarn.scheduler.capacity.root.dev.capacity:40
      • 生产队列:yarn.scheduler.capacity.root.prod.capacity:60
      • 队列上限:yarn.scheduler.capacity.root.dev.maximum-capacity:60
      • 队列上限:yarn.scheduler.capacity.root.prod.maximum-capacity:80
      • 队列状态:yarn.scheduler.capacity.root.dev.state:RUNNING
      • 队列状态:yarn.scheduler.capacity.root.prod.state:RUNNING
      • 用户上限因子:yarn.scheduler.capacity.root..user-limit-factor:1
  • 使配置生效:
    • 将配置文件分发到所有节点后,重启 ResourceManagerNodeManager(生产环境建议滚动重启以减小影响)。
    • 容量调度器支持动态刷新队列配置,可通过 yarn rmadmin 相关命令进行在线刷新(如队列增删改后执行刷新)。

四 提交作业与队列映射

  • 提交作业到指定队列(示例):
    • MapReduce 提交:
      • hadoop jar your-job.jar YourMainClass
        -D mapreduce.job.queuename=dev
        -D mapreduce.map.memory.mb=1024
        -D mapreduce.reduce.memory.mb=1024
        /input /output
    • Spark on YARN 提交:
      • spark-submit
        –master yarn
        –queue prod
        –executor-memory 2g
        –num-executors 4
        your-app.jar
  • 队列映射与权限:
    • 可通过 Capacity Scheduler 的 ACL 配置对队列进行访问控制(如提交与管理权限),在多租户环境下建议开启并细化到队列维度。

五 监控与常见排错

  • 常用监控与运维命令:
    • 查看应用列表:yarn application -list
    • 查看应用详情:yarn application -status < app_id>
    • 动态管理节点黑白名单:配置 yarn.resourcemanager.nodes.include-path / exclude-path 后执行刷新,使变更生效。
    • Web 界面:访问 ResourceManager Web UI(默认 8088 端口) 查看调度器类型、队列资源使用、应用运行状态与日志。
  • 常见问题与建议:
    • 作业长时间排队:检查队列容量与已用配额,必要时调整 capacity / maximum-capacity 或切换到更合适的队列。
    • 容器申请被拒:核对 mapreduce.{ map|reduce} .memory.mb 是否在 yarn.scheduler.{ min|max} -allocation-mb 范围内,且不超过节点资源。
    • 节点不健康或磁盘满:通过 NodeManager 日志目录Web UI 定位问题,必要时临时将节点加入黑名单以隔离影响。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS Hadoop作业调度如何设置
本文地址: https://pptw.com/jishu/761190.html
CentOS Hadoop数据存储方式有哪些 CentOS Hadoop性能如何优化

游客 回复需填写必要信息