首页主机资讯Ubuntu Hadoop作业如何调度

Ubuntu Hadoop作业如何调度

时间2025-12-01 15:58:04发布访客分类主机资讯浏览638
导读:Ubuntu上Hadoop作业调度实践指南 一 核心概念与调度器选型 在Hadoop 2.x/3.x中,作业调度由YARN负责:由ResourceManager全局管理资源、由NodeManager管理单节点资源与容器生命周期,应用以Ap...

Ubuntu上Hadoop作业调度实践指南

一 核心概念与调度器选型

  • Hadoop 2.x/3.x中,作业调度由YARN负责:由ResourceManager全局管理资源、由NodeManager管理单节点资源与容器生命周期,应用以ApplicationMaster驱动任务执行。YARN提供多种调度策略,常用有:
    • FIFO Scheduler:先进先出,简单但不适合共享集群。
    • Capacity Scheduler:多队列、容量配额与层级队列,适合多租户与资源隔离。
    • Fair Scheduler:按应用公平共享资源,支持抢占与细粒度队列/用户配额。
  • 选择建议:
    • 单团队/简单场景用FIFO
    • 多部门共享、需配额与隔离用Capacity Scheduler
    • 强调公平与弹性、需要抢占与用户级配额用Fair Scheduler

二 在Ubuntu上启用与配置调度器

  • 前置:安装并配置好Hadoop,配置文件位于**$HADOOP_HOME/etc/hadoop**,至少包含core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml,并以start-dfs.shstart-yarn.sh启动HDFS与YARN。
  • 选择调度器(三选一):
    • Capacity Scheduler(推荐用于多租户)
      1. yarn-site.xml设置:
        yarn.scheduler.class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
      2. capacity-scheduler.xml定义队列与容量,例如:
        yarn.scheduler.capacity.root.queues=default,prod,dev
        yarn.scheduler.capacity.root.prod.capacity=40
        yarn.scheduler.capacity.root.dev.capacity=60
        yarn.scheduler.capacity.root.dev.maximum-capacity=75
      3. 重启YARN使配置生效。
    • Fair Scheduler(强调公平与抢占)
      1. yarn-site.xml设置:
        yarn.scheduler.class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
        yarn.scheduler.fair.allocation.file=/path/to/fair-scheduler.xml
      2. fair-scheduler.xml中定义队列、权重、抢占等,例如:

        2.0
        10




      3. 重启YARN。
    • FIFO Scheduler(默认,无需额外配置)。
  • 提交作业时指定队列(以MapReduce为例):
    hadoop jar your-job.jar com.example.YourJob input output -Dmapred.job.queue.name=prod
    或使用yarn提交:
    yarn jar your-job.jar com.example.YourJob input output -Dmapred.job.queue.name=prod。

三 提交与监控作业

  • 提交方式:
    • MapReduce:hadoop jar your-job.jar … 或 yarn jar your-job.jar …
    • 其他框架(如Spark on YARN)同样通过yarn提交,由YARN统一调度。
  • 常用运维命令:
    • 查看运行中应用:yarn application -list
    • 查看应用详情:yarn application -status < application_id>
    • 监控界面:ResourceManager Web UI 默认地址为http://:8088
  • 队列与优先级:
    • 队列放置可通过mapred.job.queue.name指定;
    • 提交时可通过优先级影响调度顺序(具体支持取决于调度器与配置)。

四 进阶 定时与跨作业编排

  • 对于定时/依赖场景,建议使用工作流调度器:
    • Apache Oozie:Hadoop生态原生工作流与协调服务,适合MapReduce/Spark/Hive等作业的编排与定时。
    • Apache Airflow:通用工作流编排平台,可通过Hadoop/Spark插件提交与监控任务。
    • Linux Cron:简单周期性任务,可脚本化调用hadoop/yarn命令。
  • 选型建议:复杂依赖与可视化选Oozie/Airflow;简单周期任务用Cron

五 性能与稳定性调优要点

  • 数据本地化:尽量让任务在数据所在节点执行,减少网络开销。
  • 容器与内存:合理设置mapreduce.map.memory.mb、mapreduce.reduce.memory.mb与容器资源,避免OOM与资源浪费。
  • Shuffle与压缩:合理设置Shuffle内存与中间数据压缩(如Snappy/LZO),降低I/O与网络。
  • 推测执行:开启Speculative Execution缓解慢节点影响。
  • 监控与持续优化:结合Ganglia、Ambari等工具持续观测并迭代参数。

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


若转载请注明出处: Ubuntu Hadoop作业如何调度
本文地址: https://pptw.com/jishu/760190.html
Debian yum如何处理软件冲突 Debian yum的缓存机制是怎样的

游客 回复需填写必要信息