前言
Batch Processing System,有时又称为Offline Systems,中文翻译为批处理系统/离线系统。自Hadoop的诞生已来, 这种系统目前已在业界广泛使用。本文结合作者多年的工作经验,结合一个体案例,对批处理系统的基本特点、常见架构、常用技术等进行了介绍。
本文所有内容均为原创,转载请注明出处。
基本介绍
什么是批处理系统?
同时消费所有的输入数据,在一次计算过程中进行处理,产生输出数据。如果在处理部分数据的过程中出现了不可恢复的错误,整个批处理失败。特点
- 高吞吐量 -批处理系统能够同时处理大量的数据,并通过增加更多的计算节点横向扩展,因此具有很高的吞吐量。
- 高延迟 - 单个请求的延迟取决于整个批处理的计算时间,因此批处理系统的延迟很高。常见批处理系统中,数据的处理过程通常需要一定的时间,从几分钟到几小时甚至几天不等,根据业务的需求决定。因为这种系统的处理延迟很高,线上系统根本无法忍受,这种计算又被称为离线计算。
运行模式
由于离线计算通常耗时较长,离线系统的运行模式通常是- 系统按某个时刻表,定期地进行计算(例如一天一次),计算完成后结果推送给用户
- 用户给系统发计算请求,系统进行计算,计算结果异步地推送给用户
具体案例 - 产品销量预测系统
某B2C电商公司,业务涉及百万种商品,因业务需要,搭建产品销量预测系统,以更好地服务于商品的买入与清理,优化库存结构。用户
- 采购部门-采购合适树目的商品,用于未来的销售
- 清仓部门-清楚商品库存,防止积压
- ...