1 Storm简介:
Storm是Twitter开源的一个类似于Hadoop的实时数据处理框架。
Storm能处理高频数据和大规模数据的实时流计算解决方案将被应用于实时搜索,高频交易和社交网络上。而流计算并不是最近的热点,
金融机构的交易系统正是一个典型的流计算处理系统,它对系统的实时性和一致性有很高要求。
官网地址: http://storm.apache.org/
下载地址: http://storm.apache.org/downloads.html
Javadoc文档地址: http://storm.apache.org/documentation/Home.html ---> 点击链接Javadoc
2 HADOOP与STORM比较:
2.1) 数据来源:HADOOP是HDFS上某个文件夹下的可能是成TB的数据,
STORM是实时新增的某一笔数据,做不了全量计算
2.2) 处理过程:HADOOP是分MAP阶段到REDUCE阶段,STORM是由用户定义处理流程,流程中可以包含多个步骤,每个步骤可以是数据源(SPOUT)或处理逻辑(BOLT);
2.3) 是否结束:HADOOP最后是要结束的,STORM是没有结束状态,到最后一步时,就停在那,直到有新数据进入时再从头开始;
2.4) 处理速度:HADOOP是以处理HDFS上大量数据为目的,速度慢,STORM是只要处理新增的某一笔数据即可,可以做到很快;
2.5) 适用场景:HADOOP是在要处理一批数据时用的,不讲究时效性,要处理就提交一个JOB,STORM是要处理某一新增数据时用的,要讲时效性;
2..6) 与MQ对比:HADOOP没有对比性,STORM可以看作是有N个步骤,每个步骤处理完就向下一个MQ发送消息,监听这个MQ的消费者继续处理。
2..6.1)storm和mq交互过程图:
2.1 storm和kafaka区别:
kafka: 我们不生产水,我们只是大自然的搬运工----> 搬运
storm: 海水转换为淡水 ---> 转换
3 Storm术语解释
3.0) storm里面跑的数据抽象为流,stream(类比为火车),
流这就意味着,
a 永不停歇 b 内容多样化,可以为视频 音频 文本等
火车: steam
火车车厢: 流的单位:tuple
火车始发站:spout, 是stream的数据源,接受storm系统外的数据作为流的来源,
比如京沪高铁北京始发站
火车途经的站点: bolt, (比如 天津站 德州站 济南站 泰安站 枣庄站),每个站点需要上下旅客
上下旅客就是对流数据的处理,最后一个bolt(京沪高铁 上海站)就是这次流的终点
bolt: stream中对tuple做处理的
G36车次: 从北京站(spout)接受客源,
经过每个站点(天津站 德州站 济南站 泰安站 枣庄站)下上下旅客
最后到达上海终点站, 这个车次的整个过程对应storm就是topology,
3.1) Topologies 用于封装一个实时计算应用程序的逻辑,类似于Hadoop的MapReduce Job
3.2) Stream 消息流,是一个没有边界的tuple序列,这些tuples会被以一种分布式的方式并行地创建和处理
3.3) Spouts 消息源,是消息生产者,他会从一个外部源读取数据并向topology里面面发出消息:tuple(元组)
3.4) Bolts 消息处理者,所有的消息处理逻辑被封装在bolts里面,处理输入的数据流并产生输出的新数据流,可执行过滤,聚合,查询数据库等操作
3.5) Task 每一个Spout和Bolt会被当作很多task在整个集群里面执行,每一个task对应到一个线程.
3.6) Stream groupings 消息分发策略,定义一个Topology的其中一步是定义每个tuple接受什么样的流作为输入,stream grouping就是用来定义一个stream应该如果分配给Bolts们.
3.7) tuple: 数据源记录一条条的产生,连续起来就是一个流,可以简单理解成每一条记录都是一个tuple,
每一个tuple里面存放的就是这一行大单词list(列表),
或者你就认为过来的这一行就是一个数据(不用切分 因此也没有list集合),那么过来的每一样都可以有自己这行对应的name,有点类似于Hadoop的<k1,v1>
概念之间关系图:
storm流处理过程图:
4 hadoop和storm对比:
主 | 从 | 任务名称 | 第一个任务 | 第二个任务 | 任务间传递数据格式 | |
mapreduce | JobTracker | TaskTracker | Job | map | reduce | kv |
storm | nimbus | supervisor | topology | spout | bolt | tuple |
相关推荐
Storm简介Storm简介Storm简介Storm简介Storm简介 Storm简介Storm简介Storm简介Storm简介Storm简介
### Storm简介及安装知识点梳理 #### 一、Storm简介 **Storm** 是一款由BackType公司开发的分布式实时计算系统,后被Twitter收购并开源。它主要用于处理大规模的数据流,能够简单、高效、可靠地处理实时数据。...
01、Storm的集群搭建 01-storm简介.avi
云计算平台Storm简介.pdf
Storm是一个开源的实时计算系统,它解决了传统批处理系统如Hadoop在实时数据处理上的不足。Storm的目标是提供低延迟、高性能、分布式、可扩展且具有容错能力的解决方案,以适应现代大数据时代对实时分析和响应的需求...
#### 一、Storm简介与应用场景 Apache Storm是一款开源的分布式实时计算系统,它提供了简单而强大的API来定义数据流处理逻辑,同时保证了消息处理的容错性和高性能。Storm的设计目标是成为实时计算领域的Hadoop,...
一、Storm简介 Apache Storm是一个开源的分布式实时计算系统,它允许开发者处理无限的数据流,就像处理数据库查询一样简单。Storm在实时处理领域的应用广泛,涵盖了社交媒体分析、实时仪表盘、物联网(IoT)数据处理等...
一、Apache Storm 简介 Apache Storm 是一种开源的分布式实时计算系统,它允许开发者创建可以连续处理无界数据流的系统。Storm 保证每个消息至少被处理一次(at-least-once processing),确保了数据处理的可靠性。...
1. **Storm简介**:介绍Storm的基本概念,如拓扑结构(topology)、bolts和spouts等,以及其在大数据处理中的角色。 2. **安装与配置**:详述如何在本地或集群环境中安装Storm,包括依赖库的安装、环境变量设置和...
**一、Storm简介** Apache Storm的核心概念包括:拓扑(Topology)、工作者(Worker)、节点(Spout)和 bolt(Bolt)。拓扑是 Storm 应用的基本结构,由多个节点和bolt组成,它们之间通过流(Stream)进行连接。节点负责产生...
1. **Apache Storm 简介**: Apache Storm 是一个用于实时大数据处理的开源框架,由 Twitter 开发并贡献给 Apache 软件基金会。它专注于高吞吐量、低延迟的数据处理,尤其适合实时分析、在线机器学习、持续计算和...
#### 一、Storm简介 **1.1 什么是Storm** Apache Storm 是一个开源的分布式实时计算系统,能够处理大量实时数据流。Storm 的设计目的是为了实现实时处理,它能够确保每个事件都能得到及时处理,并且支持多种编程...
01-storm简介 02-storm部署-1 03-storm部署-2 04-storm部署概念 05-streamgrouping 06-storm组件生命周期 07-storm可靠性1 08-storm可靠性2
一、Storm简介 Apache Storm是一个开源的分布式实时计算系统,由Twitter开源并贡献给社区。它的设计目标是能够处理无界数据流,即不断产生的、没有终点的数据流。与批处理系统不同,Storm保证每个消息都会被处理至少...
Apache Storm简介 - **定义**:Apache Storm是一种分布式实时计算系统,能够处理海量的流数据,并支持复杂的流处理任务。 - **特性**: - **容错性**:自动故障检测与恢复机制确保数据处理过程中的稳定性。 - **...
Storm简介 Apache Storm是一个免费开源的分布式实时计算系统。Storm可以很容易地与各种队列系统和数据库系统集成,用来实现复杂的流处理逻辑。 #### 2. Storm的工作机制 - **Topology**:Storm应用程序的基本单元...
### Apache Storm简介 Apache Storm是一种分布式实时计算系统,能够处理无界数据流,即连续不断的数据流。它最初由Nathan Marz和BackType团队开发,并于2011年开源。Storm的主要特点是其对实时数据流的处理能力,它...