大数据技术原理——期末复习storm

1、Storm设计思想(Streams、Spouts、Bolts、Topology、Stream Groupings)

Streams:Storm将流数据Stream描述成一个无限的Tuple序列,这些Tuple序列会以分布式的方式并行地创建和处理

Spouts:Storm认为每个Stream都有一个源头,并把这个源头抽象为Spout

通常Spout会从外部数据源(队列、数据库等)读取数据,然后封装成Tuple形式,发送到Stream中。Spout是一个主动的角色,在接口内部有个nextTuple函数,Storm框架会不停的调用该函数

Bolts:Storm将Streams的状态转换过程抽象为Bolt。Bolt即可以处理Tuple,也可以将处理后的Tuple作为新的Streams发送给其他Bolt

Topology:Storm将Spouts和Bolts组成的网络抽象成Topology,它可以被提交到Storm集群执行。Topology可视为流转换图,图中节点是一个Spout或Bolt,边则表示Bolt订阅了哪个Stream。当Spout或者Bolt发送元组时,它会把元组发送到每个订阅了该Stream的Bolt上进行处理

Stream Groupings:Storm中的Stream Groupings用于告知Topology如何在两个组件间(如Spout和Bolt之间,或者不同的Bolt之间)进行Tuple的传送。每一个Spout和Bolt都可以有多个分布式任务,一个任务在什么时候、以什么方式发送Tuple就是由Stream Groupings来决定的

2、Storm集群的架构

Storm使用Zookeeper来作为分布式协调组件,负责Nimbus和多个Supervisor之间的所有协调工作。借助于Zookeeper,若Nimbus进程或Supervisor进程意外终止,重启时也能读取、恢复之前的状态并继续工作,使得Storm极其稳定

 

 

  1. Storm的工作流程

Storm进行单词统计的流程:(1)从Spout 中发送 Stream(每个英文句子为一个Tuple)。
(2)用于分割单词的 Bolt将接收的句子分解为独立的单词,  将单词作为Tuple的字段名发送出去。
(3)用于计数的 Bolt 接收表示单词的 Tuple,并对其进行统计。
(4)输出每个单词以及单词出现过的次数。

1)所有Topology任务的提交必须在Storm客户端节点上进行,提交后,由Nimbus节点分配给其他Supervisor节点进行处理

2)Nimbus节点首先将提交的Topology进行分片,分成一个个Task,分配给相应的Supervisor,并将Task和Supervisor相关的信息提交到Zookeeper集群上

3)Supervisor会去Zookeeper集群上认领自己的Task,通知自己的Worker进程进行Task的处理

4)说明:在提交了一个Topology之后,Storm就会创建Spout/Bolt实例并进行序列化。之后,将序列化的组件发送给所有的任务所在的机器(即Supervisor节点),在每一个任务上反序列化组件

 

 

4、流数据的概念、特征

概念:流数据,即数据以大量、快速、时变的流形式持续到达

特征

- 数据快速持续到达,潜在大小也许是无穷无尽的

- 数据来源众多,格式复杂

- 数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃,要么被归档存储

- 注重数据的整体价值,不过分关注个别数据

- 数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的数据元素的顺序

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小步调LLY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值