Debian Hadoop任务调度如何操作
导读:Debian 上 Hadoop 任务调度的操作指南 一 调度方式总览 YARN 内置调度器:在 mapred-site.xml 选择 FIFO、Fair Scheduler 或 Capacity Scheduler,用于多用户/多队列的资...
Debian 上 Hadoop 任务调度的操作指南
一 调度方式总览
- YARN 内置调度器:在 mapred-site.xml 选择 FIFO、Fair Scheduler 或 Capacity Scheduler,用于多用户/多队列的资源分配与排队策略。
- Linux 定时调度:用 cron 定时执行 Hadoop 命令或脚本,适合周期性批处理。
- 工作流调度器:使用 Apache Oozie(功能全面、适合复杂依赖)或 Azkaban(上手简单、适合中小规模)编排多作业依赖与定时。
- 容器化与平台调度:在 Kubernetes 上以 CronJob 运行 Hadoop 任务或客户端 Pod,便于云原生集成与弹性扩缩。
- 数据工作流平台:使用 Apache Airflow 管理依赖、重试与监控,适合复杂 DAG 与跨系统集成。
二 前置准备与集群启动
- 安装 JDK 8/11 并配置 JAVA_HOME;下载解压 Hadoop,设置 HADOOP_HOME 与 PATH。
- 基本配置(示例):
- core-site.xml:设置 fs.defaultFS 与 hadoop.tmp.dir。
- hdfs-site.xml:设置 dfs.replication、NameNode/DataNode 数据目录。
- mapred-site.xml:设置 mapreduce.framework.name=yarn。
- yarn-site.xml:设置 yarn.resourcemanager.hostname 与 yarn.nodemanager.aux-services=mapreduce_shuffle。
- 启动集群:在 NameNode 执行
start-dfs.sh,在 ResourceManager 执行start-yarn.sh;验证进程jps,访问 http://:8088 查看 YARN 调度与队列。
三 使用 YARN 内置调度器
- 选择调度器(在 mapred-site.xml 的 mapreduce.jobtracker.taskScheduler 指定调度器类,或在 yarn-site.xml 配置 Capacity/Fair 相关项),分发配置并重启 YARN/MapReduce 生效。
- 常用操作:
- 查看应用:
yarn application -list - 终止应用:
yarn application -kill < ApplicationID> - 查看节点:
yarn node -list
- 查看应用:
- 队列与资源:通过 Capacity Scheduler 配置队列容量与 ACL;通过 Fair Scheduler 配置用户/队列权重与最小共享;在 yarn-site.xml 调整容器与资源上限,如 yarn.scheduler.maximum-allocation-mb、yarn.scheduler.maximum-allocation-vcores。
四 定时与依赖编排
- Linux cron:在 Debian 上用
crontab -e添加计划任务,例如每 5 分钟运行 ETL:*/5 * * * * /opt/hadoop/bin/hadoop jar /opt/jars/etl-job.jar com.example.ETLMain > > /var/log/hadoop/etl.log 2> & 1
- Apache Oozie:定义 workflow.xml/coordinator.xml,通过 Oozie CLI 或 Hue 提交与监控,适合跨作业依赖、定时与回滚。
- Azkaban:以 project.zip(包含 job 文件与依赖)上传,配置 dependencies 与 schedules,Web 界面管理执行与依赖。
- Apache Airflow:用 BashOperator 调用
hadoop jar,通过 Cron 触发,DAG 定义依赖、重试与告警。 - Kubernetes CronJob:在集群内以 busybox/custom image 运行 Hadoop 客户端命令,示例:
apiVersion: batch/v1kind: CronJobmetadata: name: hadoop-cronjobspec:schedule: "*/5 * * * *"jobTemplate:spec:template:spec:containers:- name: hadoopimage: busybox:1.36command: ["/bin/sh","-c","/opt/hadoop/bin/hadoop jar /opt/jars/etl.jar com.example.ETLMain"]
restartPolicy: OnFailure
五 运维与常见问题
- 动态调整与滚动重启:修改调度器或容量参数后,先滚动重启 ResourceManager(避免全停),再重启 NodeManager;验证
yarn node -list与 8088 页面。 - 常用排障:
- 查看组件:
jps - 查看 RM/NM 日志:
tail -f $HADOOP_HOME/logs/yarn-*.log - 节点未注册:核对 yarn.resourcemanager.hostname 与网络连通性
- 查看组件:
- 日志与诊断:启用 日志聚合,便于集中查看各 Container 日志,缩短定位时间。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Hadoop任务调度如何操作
本文地址: https://pptw.com/jishu/760544.html
