Apache Storm
来源:互联网 发布:中国科普数据图片 编辑:程序博客网 时间:2024/06/06 12:28
@Source
https://www.tutorialspoint.com/apache_storm/apache_storm_core_concepts.htm
Apache Storm 从一端实时读取原始数据流 , 经过一系列小处理单元(bolts), 在另一端输出被加工好的数据。
下图展示了其核心概念:
Tuple
Tuple
是Storm
主要的数据结构, 它是一系列元素的集合。默认的, Tuple
支持所有的数据类型, 一般搞成一组逗号分隔的值传递给storm cluster
。
Stream
Stream
是一组无序的tuples。
Spouts
是stream
的数据源, 从Twitter Streaming API、 Apache Kafka patition
队列接收原始数据。 你也能够从数据源自己读取数据写入 Spouts
, ISpout
是其核心接口, 还有一些专门的接口, 如:IRickSpout
、 BaseRichSpout
、KafkaSpout
等等。
Bolts
Bolts
是最基本的 处理逻辑单元, Spouts
传递数据到Bolts
, Bolts
产生新的输出流, Bolts
可以执行过滤、聚合、连接、数据库交互等操作,并会发送到接下来的一个或多个 bolts
。 IBolt
是实现bolts
的核心接口, 一些通用的接口包括IRichBolt
、IBasicBolt
等等。
看一个案例:
Topology
dSpouts
和bolts
被连接在一起, 他们组成了一个topology
, 实时应用的逻辑定义在topology
, 简单来说, 一个topology
就是一个有向图, 顶点表示计算, 边表示数据流。
一个简单的topology
开始于spouts
Spout
发射数据到一个或多个bolts
, 经过处理后的数据流可以继续发射到其它blots
。 Storm
保持topology
总是运行, 知道kill
掉topology
, Storm
主要任务就是运行topology
并且可以同时运行多个。
Tasks
现在已经有了spouts
和bolts
的基本概念, 他们是topology
最小的逻辑单元, 一个topology
由一个spout
和bolts
数组组成。他们必须按照特定的顺序执行。无论是bolt
还是spout
的执行都被称作是Tasks
, 简单说, 一个task
就是一个spout
或bolt
的执行, spout
和bolt
可以同时跑多个实例。
Workers
一个topology
以分布式的形式, 运行在多个worker
节点上, Storm
均匀的分发task
到多个worker
结点。worker
的任务就是监听jobs
, 对于新来的job
启动和关闭进程。
Stream Grouping
数据流在spouts
和bolts
或着bolt
和bolt
之间“漂移”, Stream Grouping
控制tuples
如何在topology
中路由, 下面介绍四种内置的grouping
方式。
Shuffle Grouping
相同数量的tuples
被分别随机分发到所有worker
。
Field Grouping
有相同值的tuples
被分组到一起。比如统计单词的时候, 所有worker
上跑出来的单词, 相同的单词必须扔到一个同一个worker
Global Grouping
所有的tuple
都被分到一组, 发射到同一个bolt
All Grouping
一个tuple
被发射到所有的bolt
实例, 这种分组策略, 被用于向bolts
发送信号, 在join
操作上很有用。
- Apache Storm
- apache storm ExclamationTopology例子
- apache-storm安装使用
- Apache Storm 命令行操作
- apache storm笔记
- Apache Storm 简述
- Apache Storm简介
- 初识Apache Storm
- Apache Storm 的安装
- Apache-Storm介绍
- Apache Storm工作流程
- Apache Storm核心概念
- Apache Storm简介
- Apache Storm集群架构
- 【Apache Storm系列之一】Storm介绍
- Apache Storm源码阅读笔记
- Apache Storm 集群环境搭建
- Apache storm单机安装文档
- 设计模式之六大原则
- 神经网络--误差反传
- GDB内存查看
- Python基础入门2--条件语句和循环语句
- ecmall 主表和从表的四种对应关系
- Apache Storm
- 某笔试题
- hashMap扩容机制
- css 模糊效果
- MySQL
- 面试心得与总结
- Centos 6.5 使用命令ssh localhost一直需要密码的问题
- 基于HttpClient的Get/Post的http请求简单封装
- android qq登录100044和微信支付死活不行