最近公司做流式实时处理的业务比较多,对这两个流式处理的大数据组件做了不少研究,非常荣幸一起来交流这个问题
首先说一下什么是流式计算特点
数据实时产生
数据实时传输(实时收集)
数据实时计算
实时展示
尽可能快的得到结果
典型案列
1. 一淘-实时分析系统:实时分析用户的属性,并反馈给搜索引擎
2. 携程-网站性能监控:实时分析系统监控携程网的网站性能
3. 阿里妈妈-用户画像:实时计算用户的兴趣数据
再分别来说一下storm和Spark
storm
1. 用来实时处理数据
2. 特点:低延迟、高可用、分布式、可扩展、数据不丢失
3. 提供简单容易理解的接口,便于开发
Spark
1. 在2009年诞生于加州大学,在2014年2月成为Apache顶级项目
2. 是一种快速、通用、可扩展的大数据分析引擎,并行计算框架
3. 是MapReduce的替代方案,兼容HDFS、Hive,可融入Hadoop的生态系统
4. 基于内存计算,具有数据处理的高实时性、高容错性、高可伸缩性,形成集群
5. Spark生态系统包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目
两者的区别1. storm只能做流式计算,spark则可以既可以做离线也可以做实时计算
2. storm处理的数据单元是tuple,也就是每一条数据,也就是真正的流式
spark的数据单元的RDD,是在定义的某时间段内,获取 到的数据集,也就是说并不是逐条处理,而是一部分数据同时处理,也就是伪实时
3. Spark支持窗口处理,storm原生是不支持的
4. Spark支持SQL,storm的sql功能仍处于实验阶段
上述就是对两者 的一些简单介绍,由于篇幅有限,讲解的不太细致。
如果有任何疑问欢迎大家在评论区留言。
学习使人充实!!!最后祝大家都可以在大数据的海洋里随心遨游!