计算作业规范
执行前
上游上报日志: 以 /user/data/log_name/yyyy/mm/dd/hh/ 为例,日志采集端在完成数据校验后生成控制文件,如.success文件。ETL任务扫描对应目录,若文件不存在或文件为空,后续依赖任务不能启动。
上游数据库:判断sqoop等同步工具返回状态,非“成功完成”状态,后续依赖任务不能启动。
第三方同步:上游为非集团商业部,建议参考第上游上报规范,可与上游数据方商定协议。
执行中
作业状态类型:等待、执行中、成功、告警、错误、超时;
等待:前置任务正在执行中,当前任务状态应为“等待或就绪”;
执行中:正在执行的任务;
成功:任务成功执行,需获取调度系统中记录的任务耗时,需要定期优化大耗时任务;
错误&告警:包括调度系统错误和计算作业错误。前者可借助@龙老师团队的监控系统,作业错误需要数据团队同学处理。处理流程为:1.接受短信/邮件/电话报警;2.系统自动重试;3.人工干预:查看错误日志,定位问题,修改后重试。(注意:若值班同学无法独立处理错误,请第一时间联系作业负责人)。
常见错误种类包括:语法错误(低概率发生)、内存溢出(一定概率出现)、集群资源分配不均以及其他非常见原因。根据作业重要程度分等级,针对不同等级失败对应具体操作见后。ps.针对代码质量问题启动codeReview。
超时:原则上离线计算作业需在规定时间(假设8:00am)之前全部完成,若在此时间内无法完成,需邮件报警输出未完成的任务列表,可选择通过手动暂停低优先级任务释放资源,确保核心报表按时产出,若无法保证核心数据在规定时间内产出,需有正式邮件公告发出并评估完成时间点。
任务重要程度划分:
kpi作业:涉及到核心指标产出,相对前置任务,中间结果产生等作业类型,在任务出现失败时需要在第一时间处理;
一般重要任务:非核心指标产出或相对后置任务;
普通任务:一般测试任务或局部监控,可根据具体需求方要求在上班之后处理。
执行后
除正常调度系统返回“成功”之外,对核心指标(加载、展现、消耗)进行阈值报警,超过阈值(默认-5%~5%)提前下发邮件或短信,以确认非技术因素引起。
故障定级
拟采用结果评估法:
S1-收入损失,S2-数据问题导致客户投诉,S3-流量损失,S4-非暴露的脏数据;
针对S1~S3需进行case study,S4根据团队leader来评估是否case study
处理流程
【故障通报】:针对离线计算任务,若数据或服务无法在规定时间产出,需第一时间邮件公告;实时计算任务需实时报警;
【服务降级】:视具体情况可将高时间响应级别服务将至低级别,如实时计算将至小时级别,小时级别将至0.5T等;
【故障修复】:故障处理需记录以下几点:发生时间、影响范围、开始处理时间、恢复时间、产生原因、解决方案以及后续改进方案,必要情况需记录系统资源环境与重要log;
【总结】:定级参考与case study
CaseStudy模板
1.事故描述
1.1 详情
1.2影响和损失
2.直接原因分析
3.暴露的问题
4.后续改进
备注