storm入门简介、架构原理分析

本文深入介绍了Storm实时计算系统,包括其作为分布式实时计算平台的特性、与传统数据库和Hadoop的区别。Storm具有高吞吐量、低延迟、分布式、水平扩展、容错性强等特点,适合实时数据流处理。文章详细阐述了Storm的架构,包括Nimbus、Supervisor、Worker和Task的角色,以及Spout和Bolt组件的工作原理。此外,还讨论了Storm的Stream Grouping分组机制和操作模式,最后列举了适合Storm的应用场景,如流聚合、分布式RPC等。
摘要由CSDN通过智能技术生成

一、 Storm简介
Storm是由Nathan Marz开发的,一个免费并开源的分布式实时计算系统。
Storm是基于数据流的实时处理系统,提供了大吞吐量的实时计算能力。通过数据入口获取每条到来的数据,在一条数据到达系统的时候,立即会在内存中进行相应的计算;Storm适合要求实时性较高的数据分析场景。
Storm 不处理静态数据,但它处理连续的流数据。

二、 Storm的特点
Storm实现的一些特征决定了它的性能和可靠性的,Storm使用 Netty 传送消息,消除了中间的排队过程,使得消息能够直接在任务自身之间流动,在消息的背后,是一种用于序列化和反序列化 Storm的原语类型的自动化且高效的机制。
Storm注重容错和管理,Storm 实现了有保障的消息处理,所以每个元组(Turple)都会通过拓扑(Topology)结构进行全面处理;如果发现一个元组还未处理,它会自动从Spout处重发,Storm 还实现了任务级的故障检测,在一个任务发生故障时,消息会自动重新分配以快速重新开始处理。Storm 包含比 Hadoop 更智能的处理管理,流程会由zookeeper来进行管理,以确保资源得到充分使用。

Storm有如下优点:
1、 编程简单:开发人员只需要关注应用逻辑,跟Hadoop相似,Storm提供的编程原语也很简单,降低了开发并行实时处理的任务的复杂性。
2、 高性能,低延迟:可以应用于广告搜索引擎这种要求对广告主的操作进行实时响应的场景。
3、 分布式:可以轻松应对数据量大,单机搞不定的场景
4、 可水平扩展: 随着业务发展,数据量和计算量越来越大,系统可水平扩展。在Storm集群中真正运行topology的主要有三个实体:工作进程、线程和任务。Storm集群中的每台机器上都可以运行多个工作进程,每个工作进程又可创建多个线程,每个线程可以执行多个任务,任务是真正进行数据处理的实体,我们开发的spout、bolt就是作为一个或者多个任务的方式执行的。因此,计算任务在多个线程,进程和服务器之间并行进行,支持灵活的水平扩展。
5、 容错性强:如果在消息处理过程中出了一些异常,Storm会重新安排这个出问题的处理单元,Storm保证一个处理单元永远运行(除非你显式杀掉这个处理单元)。即单个节点挂了不影响应用。
6、 可靠性的消息保证:Storm可以保证spout发出的每条消息都能被“完全处理”。
7、 多语言支持,除了用java实现spout和bolt,根据Storm的多语言协议,可以使用任何你熟悉的编程语言来完成这项工作。多语言协议是Storm内部的一种特殊协议,允许spout或者bolt使用标准输入和标准输出来进行消息传递,传递的消息为单行文本或者是json编码的多行。
8、 快速的消息处理,用Netty作为底层消息队列, 保证消息能快速被处理。
9、 本地模式,支持快速编程测试。

三、 storm与传统数据库
传统关系型数据库是先

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值