hello,大家好,我是 Jackpop,硕士毕业于哈尔滨工业大学,曾在华为、阿里等大厂工作,如果你对升学、就业、技术提升等有疑惑,不妨交个朋友:
你会如何处理实时或准实时数据流?
在大数据时代,有很多方案可以帮助你完成这项任务。
接下来,我将通过一个系列的教程,我将利用Storm、Kafka、ElasticSearch逐步教你搭建一个实时计算系统。
搭建系统之前,我们首先需要了解一些定义。
通过考虑四个不同的属性,帮助你更好地理解大数据:数据量,速度,多样性和准确性。
- 数据量:海量数据
- 速度:数据处理的速度
- 多样性: 任何类型的数据,包括结构化和非结构化
- 准确性:传入和传出数据的准确性
存在具有不同用途的大数据工具:
- 数据处理工具对数据执行某种形式的计算
- 数据传输工具将数据收集和引入数据处理工具
- 数据存储工具在不同处理阶段存储数据
数据处理工具可进一步分类为:
- 批处理:批处理是要一起处理的数据的集合。批处理允许你将不同的数据点连接、合并或聚合在一起。在整个批处理完成之前,其结果通常不可用。批处理越大,等待从中获取有用信息的时间越长。如果需要更直接的结果,流处理是更好的解决方案。
- 流处理:流处理器作用于无限制的数据流,而不是连续摄取的一批数据点(“流”)。 与批处理过程不同,流中没有明确定义的数据流起点或终点,而且,它是连续的。
批处理
流梳理
示例数据和方案
我们将使用一些实际数据来数据规约系统(DRS)。根据维基百科,“数据规约是将数字或字母数字信息…转换为校正,有序和简化的形式。基本概念是将大量数据规约为有意义的形式。”
数据源将是实际的航空公司历史飞行数据,我们的最终目标是能够在地图上显示航班历史数据。
我们将构建的最终数据处理链路如下图所示:
可以使用SMACK替代上述方案:
- Spark:引擎(替代Storm)
- Mesos:容器
- Akka:模型
- Cassandra:存储(替代ElasticSearch)
- Kafka:消息队列
或者,你可以尝试自己使用自己喜欢的编程语言来实现它。