超大数据量,怎样加快写文件的速度( 六 )




图15 作业流监控
● 8.4 集群部署
图15/16显示主机管理的两个步骤:搜索主机、选择主机。平台基于Java体系技术栈,跨平台,仅依赖于JDK,规避系统依赖。Java虽然速度相比C,go等不够快。批量业务并非实时性要求极高的场景(响应时间最小支持到秒级),Java即可胜任。平台提供系统安装、配置自动工具。

超大数据量,怎样加快写文件的速度


图16 主机管理-搜索主机

超大数据量,怎样加快写文件的速度


图17 主机管理-选择主机
● 8.5 高可用性
平台两类节点,每类节点至少部署2台,实现高可用,无单点故障。
多活结构,同类节点之间负载自动均衡,杜绝资源浪费。根据出现故障节点类型及数量,设置有不同级别的故障恢复策略,如Manager宕机、Agent宕机、Manager连续宕机、Agent连续宕机、集群全部宕机等等,全部故障恢复均由平台自动完成。如图18所示。

超大数据量,怎样加快写文件的速度


图18 多活结构

● 8.6 故障处理
任务故障自动处理方法及策略
平台任务模型Job、Task均设有“异常”标记位,以及异常代码。业务代码中,可以获取这些字段来判断执行是否出现了异常。对业务来说,除了真正“业务”数据错误导致的异常之外(业务逻辑错误,无法自动处理),其他类型异常,均可以重试方式,直至成功。由于平台开发时,已经保证了任务的幂等性,所以即使重试执行时,出现了部分业务逻辑重复执行也不会影响整体业务结果。因此,故障处理逻辑可以简化为:出错即重试,直到成功为止。
需要注意的是:为避免极端情况,出现无限重试,所有重试均需要设置上限。
业务故障的快速定位
分布式环境,任务分片可能在许多节点上执行,部分分片可能出错,为实现快速定位、排除故障,平台提供了分布式日志索引、故障分析的工具。工具可以列出任务及任务分片执行过的所有节点,判断包含异常的日志片段,并提供查看工具,如图19。


超大数据量,怎样加快写文件的速度


图19 业务故障定位
节点故障的快速定位
节点故障,就分布式环境来说,典型地有断网、宕机、内存、磁盘耗尽四种。上线期间,节点故障是系统运维人员最为关注的部分。开发期间,出于业务优化等目的,业务开发人员也需要关心这部分故障。
平台提供告警系统,监视主机,节点上线、断线情况,图20/21展示批判事件通知和告警查看。

超大数据量,怎样加快写文件的速度


图20 批判事件通知

超大数据量,怎样加快写文件的速度


图21 告警查看
另外,平台亦对节点的运行日志提供了索引、故障分析的工具。用于排查内存溢出、磁盘满等故障,如图22。

超大数据量,怎样加快写文件的速度


图22 索引、故障分析工具
● 8.7 逻辑更新
任务逻辑封装
平台提供“任务包”,用于封装任务逻辑。业务开发时,多个团队可以各自开发任务包,最终上传到平台执行,各任务包之间互不影响。运行时,平台使用沙箱技术保证各任务包在同一个容器中执行的隔离。如图23所示。


推荐阅读