作者:禅与计算机程序设计艺术
1.简介
Storm是一个开源的分布式实时计算系统。它是一种流处理框架,能够通过将数据流拆分到许多机器上并按顺序执行来快速、可靠地处理数据。它使用了Apache Hadoop的底层框架Hadoop Distributed File System (HDFS) 来存储数据,并提供了简单易用的接口使得开发人员可以快速构建具有高吞吐量的数据流应用程序。本文从Storm系统中抽象出DAG(有向无环图),从DAG本身出发进行深入剖析,给读者提供一个直观的了解。
本文根据作者在Storm源码及官网文档中阅读、理解、总结而成,希望能给读者带来更加深刻的理解和启发。
2.基本概念与术语
2.1.数据流传输流程
数据流传输流程描述的是如何将源头到达的数据流经过多个中间设备再流动到目标地址。如下图所示:
- 源头: 数据源头,可以是磁盘文件、网络流量或其他外部数据源等。
- 中间设备: 数据传输过程中的多个节点,比如路由器、交换机、负载均衡等。
- 目标地址: 数据终点,最终被接受到的位置。
Storm数据流传输流程与之类似,但它在源头和目标地址之间插入了一个特殊的组件——Spout。Spout不但能够读取外部数据源,还能够生成数据流。然后,数据会流动经过Storm集群中的多个Bolt处理,最终传递至目标地址。