奎克的藏经阁 · 原书印刷页

人工智能与大数据技术导论 · 第 82 页

PDF 物理页索引 98 · 第3章

书名
人工智能与大数据技术导论
作者
未记录
印刷页
82
PDF 物理页
98(从 0 开始)
章节
第3章
UUID
cd4f7678-cd9b-4971-bde0-e9ad46a6cc71
来源类型
original_book
页面 SHA-256
c7c7bda0f4cd20b6a63baa2d71ff8a34bfbd0a9caddafa667f64e61896de03ce

3.4.5 Storm 系统

Storm是Twitter支持开发的一款分布式的、开源的、实时的、主从式的大数据流式计算系统,使用的协议为EclipsePublicLicense1.0,其核心部分使用高效流式计算的函数式语言Clojure编写,极大地提高了系统性能。但为了方便用户使用,支持用户使用任意编程语言进行项目的开发。

  1. 任务拓扑

任务拓扑(Task Topology)是 Storm 的逻辑单元,一个实时应用的计算任务将被打包为任务拓扑后发布,任务拓扑一旦提交将会一直运行,除非显式地去中止。一个任务拓扑是由一系列 Spout 和 Bolt 构成的有向无环图,通过数据流(stream)实现 Spout 和 Bolt之间的关联,如图3-11左图所示。其中,Spout负责从外部数据源不间断地读取数据,并以元组(Tuple)的形式发送给相应的Bolt。Bolt负责对接收到的数据流进行计算,实现过滤、聚合、查询等具体功能,可以级联,也可以向外发送数据流。

数据流是Storm对数据的抽象,它是时间上无穷的元组序列。如图3-11右图所示,数据流通过流分组(streamgrouping)所提供的不同策略实现在任务拓扑中的流动。此外,为了确保消息能且仅能被计算1次,Storm还提供了事务任务拓扑。

  1. 总体架构

如图3-12所示,Storm采用主从系统架构,在一个Storm系统中有两类节点(一个主节点Nimbus、多个从节点Supervisor)及3种运行环境(Master、Cluster和Slaves)。

人工智能与大数据技术导论

82