大数据任务生命周期管理
概述
大数据任务从开发到下线,涉及优先级、资源隔离、依赖管理、重跑补数、灰度验证等治理环节。任务治理水平直接决定平台稳定性:优先级保障关键业务,资源隔离防任务互相干扰,依赖管理保证数据正确,补数机制支撑数据修复。本文系统梳理。
一、任务生命周期
开发 → 测试 → 上线 → 运行 → 优化 → 下线
每个阶段都有治理要点| 阶段 | 治理 |
|---|---|
| 开发 | 规范/自检 |
| 测试 | 数据验证 |
| 上线 | 灰度/资源 |
| 运行 | 监控/告警 |
| 优化 | 性能/成本 |
| 下线 | 依赖清理 |
二、任务优先级
2.1 作用
资源有限时:
关键任务优先执行
非关键让路2.2 优先级策略
| 维度 | 说明 |
|---|---|
| 业务重要性 | 核心指标优先 |
| 时效 | SLA 紧迫 |
| 依赖链 | 上游优先 |
| 成本 | 大任务错峰 |
优先级实现:
调度系统 priority_weight
队列优先级
资源抢占/排队2.3 分级设计
| 级别 | 示例 |
|---|---|
| P0 | 关键报表(不可延迟) |
| P1 | 重要任务 |
| P2 | 普通任务 |
| P3 | 可延迟任务 |
分级原则:
明确 SLA
超时升级告警三、资源隔离
3.1 问题
任务共享集群:
大任务占用资源 → 小任务饿死
异常任务拖垮集群3.2 隔离手段
| 手段 | 说明 |
|---|---|
| 队列 | 资源池分配 |
| 租户 | 团队隔离 |
| 配额 | 用量限制 |
| 容器 | 任务级隔离 |
| 优先级 | 调度偏向 |
YARN 队列:
核心/普通/临时队列
容量 + 抢占3.3 隔离设计
| 设计 | 说明 |
|---|---|
| 核心任务 | 独占队列 |
| 常规任务 | 共享队列 |
| 大任务 | 错峰 + 限额 |
| 试验任务 | 低优先 |
隔离原则:
关键不饿死
异常不扩散四、依赖管理
4.1 依赖类型
| 依赖 | 说明 |
|---|---|
| 任务依赖 | DAG 上下游 |
| 数据依赖 | 上游数据就绪 |
| 外部依赖 | 外部系统 |
| 时间依赖 | 日期/周期 |
4.2 依赖设计
依赖原则:
明确、最小、可查
避免隐式依赖(靠时间猜)| 手段 | 说明 |
|---|---|
| DAG 编排 | 显式依赖 |
| 数据检查 | 就绪校验 |
| 依赖任务 | 等待上游 |
| 超时 | 防止永久等待 |
4.3 依赖风险
| 风险 | 处理 |
|---|---|
| 上游失败 | 失败传递 + 告警 |
| 循环依赖 | 检测禁环 |
| 隐式依赖 | 规范化 |
| 依赖漂移 | 版本管理 |
五、重跑与补数
5.1 场景
| 场景 | 说明 |
|---|---|
| 任务失败 | 修复后重跑 |
| 数据错误 | 修正重算 |
| 逻辑变更 | 重算历史 |
| 数据缺失 | 补数 |
5.2 重跑
重跑 = 重新执行失败/需要任务
幂等(结果可覆盖)
指定日期/区间| 注意 | 说明 |
|---|---|
| 幂等 | 关键前提 |
| 范围 | 精确指定 |
| 下游 | 级联重跑 |
5.3 补数
补数 = 回填历史数据(N 天)
指定日期范围
并行补数| 方式 | 说明 |
|---|---|
| 顺序补 | 慢但稳 |
| 并行补 | 快,注意资源 |
| 分批 | 控制规模 |
补数流程:
1. 明确范围
2. 评估资源
3. 分批执行
4. 校验结果六、灰度验证
6.1 为什么灰度
任务变更(逻辑/参数/依赖):
直接全量 → 风险大
灰度 → 小范围验证6.2 灰度方式
| 方式 | 说明 |
|---|---|
| 小范围日期 | 先跑一天 |
| 影子运行 | 新旧并行 |
| 抽样 | 抽样表 |
| 分队列 | 低优先队列 |
6.3 验证指标
| 指标 | 说明 |
|---|---|
| 结果对账 | 新旧对比 |
| 性能 | 耗时/资源 |
| 正确性 | 抽样校验 |
| 稳定性 | 多次运行 |
灰度通过 → 全量
失败 → 回退(保留旧版本)七、任务治理机制
| 机制 | 说明 |
|---|---|
| 规范 | 命名/参数/幂等 |
| 评审 | 上线评审 |
| 监控 | 状态/延迟 |
| 告警 | 失败/超时 |
| 复盘 | 故障分析 |
| 下线 | 清理无主任务 |
7.1 任务规范
| 规范 | 说明 |
|---|---|
| 命名 | 业务-层级-用途 |
| 幂等 | 可重跑 |
| 资源 | 显式声明 |
| 依赖 | 显式声明 |
| 日志 | 关键信息 |
7.2 下线管理
下线检查:
是否被依赖
是否在用
数据归档八、常见问题与处理
| 问题 | 处理 |
|---|---|
| 任务互相干扰 | 队列/隔离 |
| 关键任务延迟 | 优先级 |
| 上游失败连锁 | 依赖治理 |
| 数据错误 | 补数/重跑 |
| 变更出问题 | 灰度 + 回退 |
| 无主任务 | 治理清理 |
常见问题速查
| 问题 | 要点 |
|---|---|
| 优先级怎么定 | 业务 + SLA |
| 资源隔离 | 队列/租户 |
| 依赖怎么管 | 显式 DAG |
| 补数怎么做 | 幂等 + 分批 |
| 灰度验证 | 小范围 + 对账 |
| 下线 | 依赖检查 |