wwwtl222333com什么是Storm13O9439III2?
什么是Storm
本文的将介绍一些 storm 入门的基础知识,包括 storm 的核心概念,storm 的并发机制和消息可靠处理机制基于 storm 1.0.x版本。
什么是Storm?
Strom 是一款开源的分布式实时计算框架,是一种基于数据流的实时处理系统,数据吞吐量大,实时性高。
为什么使用Storm?
来自官方的回答:
It is scalable, fault-tolerant, guarantees your data will be processed, and is easy to set up and operate.
确实如官方所言,本人在使用 storm 的过程中深有感触,其可以帮助开发人员很容易的针对海量数据实现实时、可靠的数据处理。
Storm的核心概念
Storm 计算结构中的几个核心概念为 topology,stream,spout,bolt,下面我们将依次介绍。
Topology
Topology 是 storm 中最核心的概念,其是运行在 storm 集群上的一个实时计算应用,相当于 hadoop 中的一个 job,区别于 job 的时,job 会有明确的开始和结束,而 topology 由于实时的流式计算的特殊性,从启动的那一刻起会永远的运行下去,直到手动停止。
Topology 由 stream,spouts,bolts 组成,可以描述为一个有向无环图,如下:
Stream
Stream 是 storm 中对数据流的抽象,是由无限制的 tuple 组成的序列。Tuple 可以理解为包含一个或多个键值对的 hash。Tuples 在 stream 中流经 bolts,被逐步处理,最终得到预设的结果。
Stream 可比作一条源源不绝的河流,tuple 就是组成这条河流的无数水滴。每一个 stream 在 storm 中都有一个唯一标示的 id。
Spout
从图一可以看出,spout 是一个 topology 的数据源,负责连接数据源,并将数据转化为 tuple emit 到 topology中,经由 bolts 处理。
Spout 提供了一对核心方法来保障 storm 在数据没有被正确处理的情况下,不会被丢弃,仍能被重新处理,当然这是可选的,我们也可以不关心 tuple 是否被正确的处理,只负责向topology 中 emit 数据(在某些场景下可能不需要)。具体实现原理在后文会详细介绍。
Storm + Kakfa 是很常见的组合,storm提供了storm-kafka扩展,封装了多个可用的 kafka spouts 供直接使用,相关文档可以参考这里。
Bolt
Bolt 是 topology 中的数据处理单元,每个 bolt 都会对 stream 中的 tuple 进行数据处理。复杂的数据处理逻辑一般拆分成多个简单的处理逻辑交由每个 Bolt 负责。
Bolt 可以执行丰富的数据处理逻辑,如过滤,聚合,链接,数据库操作等等。
Bolt 可以接受任意个数据流中的 tuples,并在对数据进行处理后选择性的输出到多个流中。也就是说,bolt 可以订阅任意数量的spouts 或其他 bolts emit 的数据流,这样最终形成了复杂的数据流处理网络,如图一。
理解了 storm 的核心概念后,下文将介绍storm的并发机制。
以下是付费内容
Storm 的并发
上文提到 storm 是 scalable 的,是因为 storm 能将计算切分成多个独立的 tasks 在集群上并发执行,从而支持其在多台设备水平扩容。那 storm 的并发是如何实现的呢?回答这个问题之前先来看一下 topology 是如何运行在 storm 集群中的:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
支付宝OceanBase登顶TPC-C:无关比赛,只是在追求自我的极致 | 10月24号栖夜读
点击订阅云栖夜读日刊,专业的技术干货,不容错过! 阿里专家原创好文 1.支付宝OceanBase登顶TPC-C:无关比赛,只是在追求自我的极致 1年前OceanBase团队开了个会,定了个小目标,接下来的一年中这群工程师闭关攻坚。从掉头发到睡几个小时就跳起来看邮件,更甚至有人天天焦虑地捧着手机等邮件。1年后,蚂蚁金服自研数据库OceanBase登上TPC-C排行榜榜首,这一成绩开创了多项世界先河:中国数据库第一次登上TPC-C榜单;第1次基于公有云通用机型进行测试;分布式无共享关系数据库第1次通过审计并取得创纪录成绩。今天,我们走到幕后看成绩背后的光荣与梦想,艰辛与泪水。阅读更多》》 2.高德在提升定位精度方面的探索和实践 2019杭州云栖大会上,高德地图技术团队向与会者分享了包括视觉与机器智能、路线规划、场景化/精细化定位时空数据应用、亿级流量架构演进等多个出行技术领域的热门话题。现场火爆,听众反响强烈。我们把其中的优秀演讲内容整理成文并陆续发布出来,本文为其中一篇。阅读更多》》 3.收益 or 挑战?Serverless 究竟给前端带来了什么 前端开发者是最早享受到 “Server...
- 下一篇
《交互式分析六脉神剑》之Dataworks-HoloStudio初体验
大家好,今天为大家带来《交互式分析六脉神剑》第二剑商阳剑之HoloStudio,第一剑少商剑传送门:5分钟学会交互式分析?!金庸武侠中六脉神剑中的商阳剑是指右手食 指—太阳—小肠经—商阳剑,其特点是巧妙灵活,难以捉摸,正好完美对应DataWorks-HoloStudio。在使用开发工具(比如psql客户端、JDBC等)连接交互式分析进行数据开发时,有些朋友就会有一些小困惑:1.我想用更多时间去研究数据背后的意义,不想天天写代码建表写数据,有什么办法能让我不写那么多SQL,解放我的双手吗?2.我们业务组基于DataWorks开发数据,需要用到数据调度、数据服务等功能,如果使用客户端连接交互式分析进行数据开发,好像不是特别方便。......正是基于此,我们自研了HoloStudio开发平台来完美解决以上所有的困惑。 HoloStudio是基于交互式分析的一站式开发平台,深度集成于DataWorks,除了提供可视化UI一键建表外,还支持纯SQL语言编写,也提供终端功能,像使用psql客户端一样就能使用HoloStudio来开发交互式分析,方便快捷,灵活巧妙,满足不同用户的不同开发习惯。更精妙...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果