Streaming特点:
实时响应,低延迟
数据不存储,先计算
连续查询
事件驱动
基本概念:
Task:Worker中每一个Spout/Bolt的线程称为一个Task
Tuple:Streaming的核心数据结构 是消息传递的基本单元
Stream:一个无边界的连续Tuple序列
Zookeeper:为Streaming服务中各进程提供分布式协调服务
Worker:
一个Worker是一个JVM进程 所有的Topology都是在一个或者多个Worker中运行的
启动后是长期运行的 除非人工停止 Worker进程的个数取决于Topology的设置
架构
Client---------->Nimbus<--------------------->Zookeeper
提交拓扑 监控心跳 分配任务
| /Zookeeper
|下载Jar包 /
| / Zookeeper
------------- --------------- |上报心跳
Supervisor Supervisor /获取分配任务 |
Worker |启动Worker |
Worker | |
Executor----------------------------
Executor
在一个单独的Worker进程中会运行一个或者多个Executor线程
每个Executor只能运行Spout或者Bolt中的 一个或者多个task实例
Topology:是由一组Spout(数据源)和Bolt(逻辑处理) 通过Stream Groupings进行连接的有向无环图
Topology里面的每一个Component(Spout/Bolt)节点都是并行运行的
Nimbus HA
Zookeeper集群
|
Streaming集群
主Nimbus 备Nimbus
Supervisor Supervisor Supervisor
worker worker worker worker worker worker
消息可靠性:
最多一次 最少一次(Ack机制) 精确一次(Trident)



