博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Storm
阅读量:6418 次
发布时间:2019-06-23

本文共 1737 字,大约阅读时间需要 5 分钟。

应用场景

1.信息流处理
Storm可用来实时处理新数据和更新数据库,兼具容错性和可扩展性。即 Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。
2.连续计算
Storm可进行连续查询并把结果即时反馈给客户端。比如把 Twitter 上的热门话题发送到浏览器中。
3.分布式远程调用
Storm 可用来并行处理密集查询。Storm 的拓扑结构是一个等待调用信息的分布函数,当它收到一条调用信息后,会对查询进行计算,并返回查询结果。举个例子 Distributed RPC 可以做并行搜索或者处理大集合的数据。

操作步骤

1. Storm概述

Storm 是一个实时的、分布式的、可靠的流式数据处理系统。它的工作就是委派各种组件分别独立的处理一些简单任务。在 Storm 集群中处理输入流的是 Spout 组件,而 Spout 又把读取的数据传递给叫Bolt的组件。Bolt组件会对收到的数据元组进行处理,也有可能传递给下一个Bolt。我们可以把 Storm

集群想象成一个由Bolt 组件组成的链条集合,数据在这些链条上传输,而Bolt作为链条上的节点来对数据进行处理。

Storm 保证每个消息都会得到处理,而且处理速度非常快,在一个小集群中,每秒可以处理数以百万计的消息。Storm 的处理速度非常惊人:经测试,每个节点每秒可以处理 100 万个数据元组。其主要应用领域有实时分析、在线机器学习、持续计算、分布式 RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。)、ETL(数据抽取、转换和加载)等。

Storm 和 Hadoop 集群表面看上去很类似,但是 Hadoop 上面运行的是 MapReduce Jobs,而在Storm上运行的是拓扑 Topology,这两者之间是非常不一样的,关键区别是:MapReduce 最终会结束,而一个 Topology永远会运行(除非你手动 kill 掉),换句话说,Storm 是面向实时数据分析,而 Hadoop 面向的是离线数据分析,Storm 在 HDP 中的位置如下图所示。

这里写图片描述

2. Storm集群架构

Storm的集群由一个主节点和多个工作节点组成。主节点运行一个名为“Nimbus”的守护进程,每个工作节点都运行一个名为“Supervisor”的守护进程,两者的协调工作由ZooKeeper 来完成,ZooKeeper 用于管理集群中的不同组件,Storm集群架构如下图所示。

这里写图片描述

2.1 主节点 Nimbus

主节点通常运行一个后台程序——Nimbus,用于响应分布在集群中的节点,分配任务和监测故障,在某个节点的 Supervisor出现故障宕机之后,如果在该节点上运行的 Worker进程异常终止,Nimbus会将异常终止的 Worker 进程分配到其他 Supervisor 节点上继续运行,这类似于 Hadoop 中的JobTracker。

2.2 工作节点 Supervisor

每一个工作节点上面运行一个叫做 Supervisor进程。Supervisor负责监听从 Nimbus 分配给它执行的任务,还能保证正常运行的 Worker异常终止之后能够重启该 Worker。Nimbus 和 Supervisor之间的协调则通过 ZooKeeper 系统。

2.3 协调服务组件 Zookeeper

ZooKeeper 是完成 Nimbus 和 Supervisor 之间协调的服务。而应用程序实现实时的逻辑则被封装进Storm中的“topology”。Topology 则是一组由 Spout(数据源)和 Bolts(数据处理)通过 Stream Groupings 进行连接的图。

2.4 工作进程 Worker

Worker是一个 Java 进程,执行拓扑的一部分任务。一个 Worker进程执行一个 Topology的子集,它会启动一个或多个 Executor 线程来执行一个 Topology 的组件(Spout 或 Bolt),如下图。

这里写图片描述

3. Storm的使用

这里写图片描述

这里写图片描述

这里写图片描述

一但storm任务开启,那么就一直在运行,除非手动终止。

你可能感兴趣的文章
jQuery插件之验证控件jquery.validate.js
查看>>
[经验]无线鼠标和无线键盘真的不能用了?——雷柏的重生之路~
查看>>
【转】plist涉及到沙盒的一个问题
查看>>
GNU make manual 翻译( 一百四十五)
查看>>
重构之美-走在Web标准化设计的路上[复杂表单]3 9 Update
查看>>
linux中的优先搜索树的实现--prio_tree【转】
查看>>
重构之美-跨越Web标准,触碰语义网[开门见山:Microformat]
查看>>
git入门与实践【转】
查看>>
WPF 虚拟键盘
查看>>
储存卡无法打开专家教您怎么数据恢复
查看>>
彼得原理
查看>>
如何利用【百度地图API】,制作房产酒店地图?(下)——结合自己的数据库...
查看>>
[20171113]修改表结构删除列相关问题3.txt
查看>>
特征选择
查看>>
在Winform程序中设置管理员权限及为用户组添加写入权限
查看>>
RTMP直播到FMS中的AAC音频直播
查看>>
多能互补提速 加快我国能源转型和现代能源体系建设
查看>>
《JavaScript设计模式》——2.5 多种调用方式——多态
查看>>
Redis开发运维实践高可用和集群架构与实践(二)
查看>>
程序员的常见“谎话”:对,这是一个已知 Bug
查看>>