一 流计算对“批计算”的优势:
“流计算”是相对于“批计算”来的,MapReduce,Spark底层的计算方式是目前主流的“批计算”实现方式,很多公司在使用这种方式做大数据处理。但是越来越多的公司目前开始关注“流计算”,主要有以下一些原因:
1 对处理时间的要求。随着技术的进步,用户对“延迟”的忍受能力越来越弱,能更及时发现问题、解决问题,能提升用户体验。
2 在大数据分析领域,数据分析得越及时,价值越高。在推荐、风控等很多场景中,对实时性的要求相当苛刻
3 “流计算”天然支持对事件发生的先后顺序、时间关系这方面的分析,这是“mini batch”方式的批处理系统支持不好的
目前批处理的流行是因为以前的流处理技术不够好,或者说“批处理”是因为技术原因对现实需求所做的妥协。现实中日志、交易、物流等常见的大数据场景,数据都是以“流”的方式产生,适合以“流计算”的方式及时处理。但以前的Storm等流处理系统,在吞吐量、容错性、准确性方面无法满足要求,所以大家才使用成熟度更高的“批处理”系统。人为地发数据切分成一批一批的,每天处理一次或者每小时处理一次等。
如果“流处理”系统达到批处理系统类似的吞吐量和容错性,“流处理”在实时性和“时间序列”处理方面的优势就非常明显了。