Storm 入门知识

为什么用Storm

它是一个分布式的开源、实现计算框架。可以轻松使用它处理流式数据,类似hadoop对数据进行批处理。
Storm的一些使用场景:
- realtime analytics
- online machine learning
- continuous computation
- distributed RPC
- ETL
Storm集成了常见数据库的操作方式。
这里写图片描述

Storm特性

  • 简化编程
  • 容错 Storm集群会关注工作节点状态,如果宕机了必要的时候会重新分配任务。
  • 可扩展 所有你需要为扩展集群所做的工作就是增加机器。Storm会在新机器就绪时向它们分配任务。
  • 可靠的 所有消息都可保证至少处理一次。如果出错了,消息可能处理不只一次,不过你永远不会丢失消息。
  • 快速 速度是驱动Storm设计的一个关键因素
  • 事务性

Storm集群两类结点

主控节点 Master Node

运行Nimbus的后台程序,负责在Storm集群内分发代码,分配任务给工作机器,并且负责监控集群运行状态。类似于Hadoop中JobTracker的角色。

工作结点 Work Node

运行Supervisor的后台程序,负责监听从Nimbus分配给它执行的任务,据此启动呈停止执行任务的工作进程。每一个工作进程执行一个Topology子集;一个运行中的Topology由分布在不同工作节点上的多个工作进程组成。

  • Nimbus和Supervisor之间是由Zookeeper来协调工作的。
  • Nimbus和Supervisor进程都是快速失败和无状态的
  • Storm集群所有的状态要么在Zoopkeeper集群中,要么存储在本地磁盘上。如果kill -9杀死进程,它可以在重启后继续工作,以使得Storm运行稳定。

这里写图片描述

(经典的示意图)

系统底层,Storm使用了zeromq(http://www.zeromq.org)。它是一种可嵌入的网络通讯库:
- 一个并发架构的Socket库
- 对于集群产品和超级计算,比TCP要快
- 可通过inproc , IPC , TCP , Multicast通信
- 异步I/O可扩展的多核消息传递应用程序
- 利用fanout,PUB-SUB, Pipeline , REQ-REP 实现N-N连接。

Storm使用其push/pull sockets功能。

Spout

Storm集群的输入流由Spout管理,Spout把数据传递给bolt。
bolt可以把数据存储,或传递给其它bolt。
Storm 集群就是在一连串的bolt之间转换Spout传过来的数据。

可以使用Spout读取一个文件、socket、http等,Spout传给一个bolt,在bolt里传递的结果可以在数据库随时查看。

Topologies

在Storm上做实时计算,需要创建”Topology”,一个topology是一个计算过程的描述。它的每个节点包含处理逻辑,节点之间的连接表明了数据在节点之间是如何传递的。
这里的节点是指topology中计算过程的每一个步骤。

Streams

Storm 的核心抽象概念,相当于一个无限的tuple序列。Storm将一个stream转换成一个新stream的primitive.

数据模型

Storm使用tuple作数据模型。一个tuple是命名过的值列表,字段可以是任何类型对象。

参考:
http://storm.apache.org/releases/1.0.1/index.html
http://ifeve.com/getting-started-with-stom-index/

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

编程圈子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值