起源背景:Twitter开源的一个类似于Hadoop的实时数据处理框架。
适用场景:推展系统,网站统计 ,监控预警系统,金融系统。
Storm的特性:
适用场景广泛:实时处理和更新持续并行化查询,满足大量场景
可伸缩性高:扩展计算任务,只需要增加机器,并提高运行度即可
处理数据完整性:能够保证数据无丢失
异常健壮:集群易管理,可轮流重启节点
容错性好:处理过程中遇到异常会进行重试
语言无关性:topology可用多种语言编写
架构类型:
主存架构:简单高效,但主节点存在单点问题,
对称架构:复杂,效率较低,但无单点问题,更加可靠
Storm采用的时主从 架构;
Storm组件:
Nimbus(主节点):接受客户端topo代码,拆封成多个task,将task信息存入zk;将task分配给Supervisor,并将映射关系存入zk;故障检测
Supervisor:从Nimbus目录读取代码,从zk上读取nimbus分配的task;启动工作进程执行任务;检测运行的工作进程worker
Worker:从zk上读取分配的task,并计算出task需要给那些task发消息;启动一个或多个Executor线程执行任务task
Zookeeper:Niubus和Supervisor进行通讯(分配任务,心跳);Supervisor和Worker进行通信(分配任务,心跳),Nimbus的高可用性(HA)
Zookpper的核心功能:文件系统,通知机制