在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
大数据Storm分布式实时处理框架是什么?用在哪儿?Storm是Twitter开源的分布式实时大数据处理框架,是一个免费的开源分布式实时计算系统,使用起来比较简单可以与任何编程语言一起使用。Apache Storm有很多用例如实时分析、在线机器学习、连续计算、分布式RPC、ETL等。

1、Storm是什么?
Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统等,大数据实时处理解决方案的应用日趋广泛,目前已是分布式技术领域新爆发点,而Storm更是流计算技术中的佼佼者和主流。
Storm对于实时计算的意义类似于Hadoop对于批处理的意义。Hadoop提供了map、reduce原语,使我们的批处理程序变得简单和高效。同样Storm也为实时计算提供了一些简单高效的原语,而Storm的Trident是基于Storm原语更高级的抽象框架,类似于基于Hadoop的Pig框架让开发更加便利和高效。
2、Storm应用场景
推荐系统、金融系统、预警系统、网站统计、交通路况实时系统等。
3、Storm特性有哪些?
(1)适用场景广泛: storm可以实时处理消息和更新DB,对一个数据量进行持续的查询并返回客户端(持续计算),对一个耗资源的查询作实时并行化的处理(分布式方法调用,即DRPC),storm的这些基础API可以满足大量的场景。
(2)可伸缩性高: Storm的可伸缩性可以让storm每秒可以处理的消息量达到很高。扩展一个实时计算任务,你所需要做的就是加机器并且提高这个计算任务的并行度 。Storm使用ZooKeeper来协调集群内的各种配置使得Storm的集群可以很容易的扩展。
(3)保证无数据丢失: 实时系统必须保证所有的数据被成功的处理。 那些会丢失数据的系统的适用场景非常窄, 而storm保证每一条消息都会被处理, 这一点和S4相比有巨大的反差。
(4)异常健壮: storm集群非常容易管理,轮流重启节点不影响应用。
(5)容错性好:在消息处理过程中出现异常, storm会进行重试
(6)语言无关性: Storm的topology和消息处理组件(Bolt)可以用任何语言来定义, 这一点使得任何人都可以使用storm.
4、storm集群结构
Nimbus 和Supervisors 之间所有的协调工作是通过 一个Zookeeper 集群。Nimbus进程和 Supervisors 进程是无法直接连接,并且是无状态的; 所有的状态维持在Zookeeper中或保存在本地磁盘上。你可以 kill -9 Nimbus 或Supervisors 进程,而不需要做备份。这种设计导致storm集群具有令人难以置信的稳定性,并且无耦合。
5、storm工作原理是什么?
Nimbus 负责在集群分发的代码,topo只能在nimbus机器上提交,将任务分配给其他机器,和故障监测。Supervisor,监听分配给它的节点,根据Nimbus 的委派在必要时启动和关闭工作进程。 每个工作进程执行topology 的一个子集。一个运行中的topology 由很多运行在很多机器上的工作进程组成。
在Storm中有对于流stream的抽象,流是一个不间断的无界的连续tuple,注意Storm在建模事件流时,把流中的事件抽象为tuple即元组,Storm认为每个stream都有一个源,也就是原始元组的源头,叫做Spout(管口)处理stream内的tuple,抽象为Bolt,bolt可以消费任意数量的输入流,只要将流方向导向该bolt,同时它也可以发送新的流给其他bolt使用,这样一来,只要打开特定的spout再将spout中流出的tuple导向特定的bolt,bolt又对导入的流做处理后再导向其他bolt或者目的地。
假设spout就是水龙头且每个水龙头里流出的水不同,想拿到哪种水就拧开哪个水龙头,然后使用管道将水龙头的水导向到一个水处理器(bolt),水处理器处理后再使用管道导向另一个处理器或者存入容器中。为了增大水处理效率很自然就想到在同个水源处接上多个水龙头并使用多个水处理器,这样就可以提高效率。
6、Topology
Storm将流中元素抽象为tuple,一个tuple就是一个值列表value list,list中的每个value可以是任意可序列化的类型。拓扑的每个节点都要说明它所发射出的元组的字段的name,其他节点只需要订阅该name就可以接收处理。
7、storm相关概念
Streams消息流,消息流是一个没有边界的tuple序列,而这些tuples会被以一种分布式的方式并行创建和处理。 每个tuple可以包含多列,字段类型可以是: integer, long, short, byte, string, double, float, boolean和byte array。 你还可以自定义类型 — 只要你实现对应的序列化器。Spouts是topology消息生产者。Spout从一个外部源(消息队列)读取数据向topology发出tuple。 消息源Spouts可以是可靠的也可以是不可靠的。一个可靠的消息源可以重新发射一个处理失败的tuple, 一个不可靠的消息源Spouts不会。
Spout类的方法nextTuple不断发射tuple到topology,storm在检测到一个tuple被整个topology成功处理的时候调用ack, 否则调用fail。storm只对可靠的spout调用ack和fail。
Bolts 消息处理者,消息处理逻辑被封装在bolts里面,Bolts可以做很多事情: 过滤, 聚合, 查询数据库等。Bolts可以简单的做消息流的传递。复杂的消息流处理往往需要很多步骤, 从而也就需要经过很多Bolts。第一级Bolt的输出可以作为下一级Bolt的输入。而Spout不能有一级。Bolts的主要方法是execute(死循环)连续处理传入的tuple,成功处理完每一个tuple调用OutputCollector的ack方法,以通知storm这个tuple被处理完成了。当处理失败时,可以调fail方法通知Spout端可以重新发送该tuple。
流程是: Bolts处理一个输入tuple, 然后调用ack通知storm自己已经处理过这个tuple了。storm提供了一个IBasicBolt会自动调用ack。Bolts使用OutputCollector来发射tuple到下一级Blot。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
大数据是什么?有什么巨大价值?
随着市场经济的不断发展以及互联网科技的快速提升,信息流通的价值也越来越大,马云曾指出我们即将进入DT的时代。因此大数据成为炙手可热的关键因素。大数据更像是矿藏,不只是因为他的量大,而更在于这些数据背后所带来的的价值以及利益。那大数据到底是什么?他的背后隐含着什么样的巨大价值呢?
8531
2019-08-09 18:04:03
大数据对企业的意义是什么?有哪些大数据经典案例?
大数据技术的意义是什么?对于企业而言,可以根据大数据的分析使产品更加符合消费者的需求,根据目标用户特征锁定精准用户群体,同时还可以通过数据制定更好的推广方案,提高有效转化率,也可以帮助企业在危机来临之前展示预警功能,从而降低相应的损失。那有哪些我们知道的大数据经典案例呢?下面我们一起来看一下吧。
10448
2019-07-16 18:21:12
云计算大数据在线培训班课程贵吗?
云计算大数据的前景是十分广阔的,许多公司都很重视大数据,从各个公司提出的诱人薪资待遇,我们便可窥见一二。但是,有些参加云计算大数据在线培训班的同学不免担心,培训机构的学习内容能不能在工作中得到应用。所以云计算大数据在线培训班应用而生,相信不少人又想问,云计算大数据在线培训班课程贵吗?
8722
2019-12-16 19:23:11
大数据是思维还是技术?
大数据是思维还是技术?大数据既离不开思维也无法脱离技术支持,大数据思维是解决问题的方法,而大数据技术是手机数据的的工具,二者结合在一起才是大数据。大数据无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
9984
2019-10-25 10:46:40
Kylin开发教程为什么要学习Kylin?
大数据时代为互联网创造了更多的可能与机会。面对更多的就业岗位、更高的就业薪资、更具有创造性的工作内容,很多在职人群选择进一步学习,把握好数据时代为我们带来的重大机遇。然而优质课程资源稀缺,想要学习却找到好的途径成为大家面临的难题。今天博学谷小编就针对Kylin操作系统的技能提升为大家介绍一门《基于Kylin搞定千亿级电信数据分析》课程。
6279
2019-11-07 15:52:50
