Storm核心组件、编程模型

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Storm核心组件、编程模型

Storm简介


storm是用来做实时计算的框架,所以介绍storm之前需要知道什么是流式计算。

流式计算:数据实时产生、数据实时传输、数据实时计算、实时展示

代表技术:Flume实时获取数据、Kafka/metaq实时数据存储、Storm/JStorm实时数据计算、Redis实时结果缓存、持久化存储(mysql)。一句话总结:将源源不断产生的数据实时收集并实时计算,尽可能快的得到计算结果。

而Storm用来实时处理数据,特点:低延迟、高可用、分布式、可扩展、数据不丢失。提供简单容易理解的接口,便于开发。


Storm与Hadoop的区别


Storm用于实时计算,Hadoop用于离线计算。

Storm处理的数据保存在内存中,源源不断;Hadoop处理的数据保存在文件系统中,一批一批。

Storm的数据通过网络传输进来;Hadoop的数据保存在磁盘中。

Storm与Hadoop的编程模型相似


Storm编程模型


image.png

流程分析:

1、storm组件由spout和bolt组成,spout组件(取源数据流的组件)首先从外部获取数据;

2、接着spout会将数据处理后以tuple为单位发射给后续bolt组件(该组件接收数据后进行逻辑处理),至于如何分发有多种规则可选,比如随机发或者按照指定字段发(类似于hadoop中默认的哈希值比上mapreduce,这种情况可以保证相同的字段必发射到某个bolt)。

3、处理逻辑1的bolt组件处理完数据后,会接着往后续处理逻辑2的bolt组件发射数据。

4、经过几个bolt组件处理后,达到要求,将数据保存起来,比如发到redis中。

注:如图所示,两个处理逻辑1 的bolt都接来自spout的数据,但两者的处理逻辑是相同的(两个线程做同样的事情),那么认为该bolt的并发度为

Topology:Storm中运行的一个实时应用程序的名称。(拓扑)


storm核心组件


image.png


组件介绍

1、Nimbus:用来进行资源分配和任务调度的,对任务进行监控;

2、zookeeper:协调服务,保存任务分配的信息、心跳信息、元数据信息;

3、Supervisor:一个Supervisor对应一个物理机,它是当前机器上的管理者,介绍Nimbus分配的任务,按需来启动自己的Worker,而Workder的数量是能通过配置文件来配置的(配置端口即可,将集群搭建的时候会说到);

4、Worker:执行具体的任务的组件,其中任务类型有两种,一种是Spout任务,另一种是Bolt任务,一个Worker中可能有多个Spout任务和Bolt任务;

5、Task:worker中每一个spout/bolt的线程称为一个task。每个Task属于某个组件并发度中的一个,一个Task本质上是一个线程。

默认情况下Task=executor=thread


流式计算架构


image.png

flume实时采集,用来获取数据,低延迟。

Kafka消息队列,用来临时保存数据,低延迟。

Strom实时计算,用来计算数据,低延迟。

Redis实时存储,是个内存数据库,用来保存数据,低延迟。

网站产生日志后,通过Flume来获取日志,接着将日志信息保存到Kafka中,Kafka将数据发送到Storm集群,Strom集群根据需求来进行计算,将结果保存到redis中。

目录
相关文章
|
6月前
|
消息中间件 存储 SQL
Flume【基础知识 01】简介 + 基本架构及核心概念 + 架构模式 + Agent内部原理 + 配置格式(一篇即可入门Flume)
【2月更文挑战第18天】Flume【基础知识 01】简介 + 基本架构及核心概念 + 架构模式 + Agent内部原理 + 配置格式(一篇即可入门Flume)
1804 0
|
流计算
106 Storm编程模型
106 Storm编程模型
45 0
|
调度 流计算
105 Storm核心组件
105 Storm核心组件
25 0
|
SQL 分布式计算 算法
Flink 的编程模型与其他框架比较
我们在讲解 Flink 程序的编程模型之前,先来了解一下 Flink 中的 Streams、State、Time 等核心概念和基础语义,以及 Flink 提供的不同层级的 API。
259 0
Flink 的编程模型与其他框架比较
|
分布式计算 搜索推荐 NoSQL
|
jstorm 分布式计算 Java
storm笔记:storm基本概念
本文主要介绍storm中的基本概念,从基础上了解strom的体系结构,便于后续编程过程中作为基础指导。主要的概念包括
335 0
storm笔记:storm基本概念
Jstorm 基本概念
Jstorm 基本概念
668 0
|
分布式计算 资源调度 并行计算
并行计算框架MapReduce编程模型
思想:分而治之 map:对每一部分进行处理 reduce :汇总map结果 map是MapReduce最核心的。 mapreduce编程模型 一种分布式计算模型,解决海量数据计算问题 MapReduce把整个并行计算的过程抽象到两个函数,map和reduce函数。
1517 0
|
分布式计算 网络协议 API
分布式计算框架Gearman原理详解
什么是Gearman? Gearman提供了一个通用的应用程序框架,用于将工作转移到更适合于工作的其他机器或流程。它允许你并行工作,负载平衡处理,并在语言间调用函数。它可用于从高可用性网站到传输数据库复制事件的各种应用程序。
1598 0