-
什么是Storm
-
Storm的基本术语
-
Storm组件协作图
-
Storm消息机制
什么是Storm
Storm用于流式计算和实时计算,简称实时流计算。实时流计算的三种常见场景:事件流、持续计算和分布式远程方法调用。流式计算框架如Storm关注于数据多次处理,一次写入;是批处理计算框架如Hadoop关注于数据一次写入,多次查询统计以提取有用信息。
The input stream of a Storm cluster is handled by a component called a spout. The spout passes the data to a component called a bolt, which transforms it in some way. A bolt either persists the data in some sort of storage, or passes it to some other bolt. You can imagine a Storm cluster as a chain of bolt components that each make some kind of transformation on the data exposed by the spout.
- Storm与Hadoop 1.x的角色对比
Storm基本术语
- Toplogy
Toplogy是Storm中运行的一个任务,类比Hadoop1.x中的一个作业(Job)
- Nimbus
Nimbus在Storm中用于资源分配和作业调度,类比Hadoop1.x中的JobTracker
- Supervisor
Supervisor在Storm中用于接受Nimbus分配的任务,并且启动和停止用于完成这些任务的Worker进程。Supervisor类比Hadoop1.x中的TaskTracker
- Worker
运行Storm中具体组件逻辑的进程。这里的组件指的是Spout或者Bolt,对比Hadoop1.x的Child进程
- Task
Worker进程中每个运行Spout或者Bolt组件逻辑的线程称为Task
- Spout
在一个Toplogy中产生源数据流的组件
- Bolt
在一个Toplogy中接受数据,并进行逻辑处理的组件,称为Transformation
- Tuple
一次消息传递的基本单元
- Stream Grouping
消息分组的方法
Storm作业协作图
可见,Storm是一个典型的Master/Workers架构。Nimbus和Supervisors构成一组Master/Workers架构,Supervisor和Workers构成一组Master/Workers架构。
从上面的图中可以看到,Bolts之间是一种流式的计算,一份数据在多个Bolt之间进行处理转换,每种类型的Bolt可以是一个集群,因此,这种架构的可扩展性是天然的。
Storm的消息机制
如上图所示,Spout和Bolt之间,多个Bolt之间,有数据的传输,Storm底层是ZeroMQ作为消息队列的管理,Storm保证消息能够快速的被消费(性能),同时保证消息能够被消费(可靠性)
参考:http://wenku.baidu.com/view/3b695d5c7fd5360cba1adbf3.html
相关推荐
Storm入门教程 之Storm原理和概念详解,出自Storm流计算从入门到精通之技术篇,Storm入门视频教程用到技术:Storm集群、Zookeeper集群等,涉及项目:网站PV、UV案例实战、其他案例; Storm视频教程亮点: 1、Storm...
【标题】"Storm入门"指的是对Apache Storm这一分布式实时计算系统的...这份PDF文件对于初学者来说是一份宝贵的资源,可以帮助他们快速掌握Storm的基本概念和操作。建议读者结合实际操作,边学边练,以加深理解和应用。
Storm入门书籍介绍了Storm的基本概念和应用场景,指导读者如何搭建Storm开发环境,创建Storm工程,以及如何理解Storm拓扑结构、spouts、bolts等组件的功能与开发。此外,书中还提供了不同语言开发Storm工程的实例,...
【标题】:“storm一个简单实例”揭示了Apache Storm的基础应用,这是一个实时大数据处理框架,尤其在流处理领域具有广泛的应用。这个实例适用于初次接触Storm的开发者,帮助他们快速上手并理解其工作原理。 【描述...
"jstorm storm入门demo" 这个标题表明了这是一个关于JStorm和Storm框架的基础教学示例。JStorm是阿里巴巴开源的一个分布式实时计算系统,它基于Apache Storm,但提供了更稳定、高性能以及易用的特性。这个demo可能是...
"storm学习入门《Getting started with Storm》中英文版" 指的是一个关于Apache Storm的初学者教程资源,包含了该技术的入门介绍。Apache Storm是一个开源的分布式实时计算系统,用于处理流数据,即持续不断的数据流...
标题中的"storm和spark入门项目finalss"表明这是一个关于学习Apache Storm和Apache Spark的基础项目,旨在帮助初学者熟悉这两种大数据处理框架。Apache Storm是实时数据流处理系统,而Apache Spark则是用于批处理、...
Storm是一个分布式实时计算系统,它允许开发者处理无界数据流,具有高容错性和高性能的特点。在本节中,我们将深入探讨Storm的核心概念和特性,包括它的记录级容错原理、配置详解、批处理、TOPN操作、流程聚合、DRPC...
Storm是Apache的一个分布式实时计算系统,它允许开发者编写能够处理无界数据流的复杂事件处理逻辑。在Storm中,核心概念是`拓扑(Topology)`,它代表了数据处理的计算图。拓扑由节点(Node)组成,这些节点可以是`...
### Apache Storm 入门知识点详解 #### 一、Apache Storm 概述 - **定义**:Apache Storm 是一款分布式实时大数据处理系统,旨在提供一种容错且可水平扩展的方式来处理大规模的数据流。它是一个高性能的流数据处理...
1. **Storm概念**:理解Spout和Bolt的概念,以及它们在实时数据处理中的作用。 2. **拓扑结构**:学习如何定义数据流的流向,包括数据源、中间处理步骤和最终结果输出。 3. **编写代码**:用Java或Clojure编写Spout...
#### 一、Storm基础概念 **1.1 什么是Storm?** Apache Storm 是一款免费且开源的分布式实时计算系统。它专为处理无界数据流而设计,能够实现实时数据处理任务,具备低延迟、高可用、分布式的特性,并支持线性扩展...
7. **storm-starter依赖**:在Maven的POM文件中,可能有一个对`storm-starter`的依赖,它是Storm提供的示例代码库,包含了许多基础的拓扑示例,可以帮助开发者快速理解和入门。 8. **源代码组织**:理解一个Maven...
【Storm入门级JAVA示例演示】是一篇关于Apache Storm的初级教程,主要针对Java开发者。Apache Storm是一个开源的分布式实时计算系统,它允许用户连续处理数据流,类似于Hadoop处理批处理任务。在这个示例中,我们将...
在提供的文件名“storm-book-examples-ch02-getting_started-8e42636”中,我们可以推断这是某个关于Storm入门的章节,可能包含逐步指导和示例代码,帮助读者了解如何开始使用Storm。另一文件名“storm-book-...
标题中的"storm-starter-master"指的是Apache Storm的一个入门示例项目,它是一个开源的分布式实时计算系统。Apache Storm被广泛应用于大数据的实时处理,能够处理无界的数据流,并且保证消息的精确一次处理...
【Storm基本概念】 Storm作为一种实时计算系统,与Hadoop不同,它专注于实时处理,具备高可靠性、分布式和容错性。Storm的核心特性包括: 1. **简单编程模型**:类似于MapReduce简化批处理,Storm简化了实时处理的...
Storm入门部分主要介绍了Storm的基本概念、工作原理和核心组件,如Bolts、Spouts、Topology等。读者将学习如何搭建本地和集群环境,创建并部署第一个简单的实时数据流处理拓扑。此外,还会涉及Storm的容错机制和监控...
标题中的"storm和spark入门项目final"表明这是一个关于学习Apache Storm和Apache Spark的基础项目,旨在帮助初学者理解和掌握这两种大数据处理框架。Apache Storm是一个实时计算系统,常用于处理连续的数据流,而...
【storm统计单词数的demo】是一个基于Apache Storm的入门级示例,旨在帮助初学者理解这个分布式实时计算系统的运作机制。Apache Storm是一个开源的流处理框架,它允许开发者处理无界数据流,实现高吞吐量、低延迟的...