离线计算代表技术
sqoop批量导入数据、HDFS批量存储数据、MapReduce批量计算数据、Hive批量计算数据…
流式计算代表技术
Flume实时获取数据、Kafka/metaq实时数据存储、Storm/JStorm实时数据计算、Redis实时结果缓存、持久化存储(mysql)
Storm核心组件
Nimbus:负责资源分配和任务调度;
Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程;
Worker:运行具体处理组件逻辑的进程。Worker运行的任务类型只有两种,一种是Spout任务,一种是Bolt任务;
Task:worker中每一个spout/bolt的线程称为一个task. 在storm0.8之后,task不再与物理线程对应,不同spout/bolt的task可能会共享一个物理线程,该线程称为executor。
Storm程序的并发机制
一个topology由多个worker(即JVM进程)协作完成,一个worker只能执行一个topology;一个worker可以包含一个或多个executor ,一个executor线程可以执行一个或多个tasks;tasks就是bolt/spout的实例。可以通过配置worker、executor、tasks的数目来配置并发度。
Storm通信机制
Worker间(即进程间)的通信经常需要通过网络跨节点进行,Storm使用ZeroMQ或Netty(0.9以后默认使用)作为进程间通信的消息框架;
Worker进程内部通信:不同worker的thread通信使用LMAX Disruptor来完成。
Worker进程间通信
worker进程间消息传递机制,消息的接收和处理的大概流程见下图
07-02
1734
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)