这是使用Storm,Kafka和ElasticSearch处理实时数据的文章和源码
批处理和流处理的区别:
- 批处理:批处理是要一起处理的数据的集合(请参见图1)。批处理允许您将不同的数据点合并,合并或聚合在一起。在整个批次完成处理之前,通常无法获得其结果。批次越大,从中获取有用信息的等待时间就越长。如果需要更直接的结果,则流处理是更好的解决方案。
- 流处理:流处理器作用于无限制的数据流,而不是连续摄取的一批数据点(“流”)(请参见图2)。与批处理过程不同,没有明确定义的起点或终点到流经此流的数据点。它是连续的。低延迟(或高速)是此处用于选择流处理的关键字。
流处理链如图所示:
可以使用的另一种技术堆栈是SMACK [1]:
- Spark:引擎(替代Storm)
- Mesos:容器
- Akka:模型
- Cassandra:存储(替代ElasticSearch)
- Kafka:消息代理