互联网&大数据应用学习分布式系统大数据,机器学习,人工智能

storm (imooc)

2017-06-21  本文已影响86人  analanxingde

分布式系统

当数据量大,且增长量很快时,把一个任务分给多个计算机去共同完成的计算机系统叫分布式系统。对外屏蔽多机的细节,只留一个对外接口

批处理(Hadoop)与流处理(storm)

Storm原理

Storm是一套分布式的、可靠的,可容错的用于处理流式数据的系统。处理工作会被委派给不同类型的组件,每个组件负责一项简单的、特定的处理任务。Storm集群的输入流由名为spout的组件负责。Spout将数据传递给名为bolt的组件,后者将以某种方式处理这些数据。例如bolt以某种存储方式持久化这些数据,或者将它们传递给另外的bolt。你可以把一个storm集群想象成一条由bolt组件组成的链,每个bolt对spout暴露出来的数据做某种方式的处理。

storm 组件

结构:主从结构

Paste_Image.png

主从结构:简单,高效,但主节点存在单点问题
对称结构:复杂,效率较低,但是不存在单点问题,更加可靠
Nimbus:主节点,分配任务不具体干活,挂掉重启即可,只要运算节点没问题就不影响大局;
Supervisor:从节点,管理干活的worker,没有数据计算和传输。

DRPC:完成分布式的RPC,DRPC提供了集群中处理功能的访问接口.

storm作业运行过程

技术架构

在storm集群中,结点被一个持续运行的主结点管理。

Storm集群中有两种结点:主结点和工作结点。主结点运行一个叫做Nimbus的守护进程,它负责在集群内分发代码,为每个工作结点指派任务和监控失败的任务,这个很类似于Hadoop中的Job Tracker。工作结点运行一个叫做Supervisor的守护进程,每个工作节点都是topology中一个子集的实现。Storm中的topology运行在不同机器的许多工作结点上。

zookeeper是完成nimbus和supervisor之间协调的服务。

关键组件

消息

1.Tuple:一次消息传递的基本单元。本来应该是一个key-value的map,但是由于各个组件间传递的tuple的字段名称已经事先定义好,所以tuple中只要按序填入各个value就行了,所以就是一个value list.

2.Stream:以tuple为单位组成的一条有向无界的数据流。

上一篇 下一篇

猜你喜欢

热点阅读