storm基础详解

Storm基础详解

一、storm是什么

Storm是一个分布式的、可靠的、高容错的实时流式数据处理系统。

二、storm的特性

简单的编程模型。类似于MapReduce降低了并行批处理复杂性,Storm降低了进行实时处理的复杂性,可以使用各种编程语言,容错性,水平扩展,可靠的消息处理等。

三、storm的应用场景

Storm主要的应用场景就是流式数据处理,例如实时推荐系统,实时监控系统等。

四、storm中的相关概念

storm中,分布式的计算结构指的是一个topology(拓扑),一个topology由流式数据,spouts(流生产者),以及bolts(具体操作者)组成。Stormtopologies和其他的批处理任务系统很类似,例如Hadoop,这类批处理任务都定义了清晰的开始和结束点,然而stormtopologies是永不停息的在运行的,除非杀死或者反部署这个topologies

Topologystorm都是以topology为单位运行的,topology就相当于网络中的拓扑图一样。

Tuple:tuplestorm结构中的核心数据,一个tuple可以简单的理解为一系列的的键值对(key-value pairs),是storm结构中最小的数据单元。如果你对CEP(complex event processing)熟悉的话,你可以认为tuples就是事件集。

Streamsstreams是由无限的tuples组成。

Spoutsspouts代表一个storm topology的数据入口,spouts扮演者适配器的作用,连接着一个个的数据源,并将数据转换成tuples,同时以数据流的方式发送tuples。数据源的来源有如下几种:1、网络或者是移动应用;2、推特或者是微博等社交网络;3、传感器输出;4、应用日志事件。典型的spouts不会实现任何的特定业务逻辑,所以spouts可以经常被重复交叉的被多个topologies使用

Boltsbolts可以想象成计算的操作者或者是一个函数,他们可以接收任意的数据流或者被处理过的数据,而且还可以随意的发送一个或多个tuplesbolts可以订阅spouts或者是其他bolts发送过来的数据流,bolts可以创造一个复杂的数据传输网络。bolts的典型作用如下:1、过滤tuples2、连接或者是聚合;3、计算

一个简单的topology如下图所示:

五、入门示例

下面我们来看一个简单的入门示例,该示例被誉为storm界的hello world,先来看下topology图:

该图中的各个组件的作用如下:

Sentence Spout:是整个topology的数据源,会接收源源不断的英语句子,例如:my name is chhliu

Split Sentence Bolt:用来将英语句子拆分为一个个单词,例如mynameischhliu

Word Count Bolt:用来计算每个单词出现的数量和。

Report Bolt:用来展示最后的统计结果。

虽然上面的topology图看上去比较简单,但是如果分布式部署的话,就可以扩展到无穷大,如下图所示:

下面我们用代码实现上面的这个拓扑图功能。

1、新建一个mave

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值