初识storm

时间:2023-03-09 05:43:18
初识storm

  storm是Twitter开发的一个开源的分布式实时计算系统,可以简单可靠的处理大量的数据流。storm有很多的应用场景,如实时分析,在线机器学习,持续计算,分布式RPC,ETL等等。storm支持水平扩展,具有很高的容错性,保证每个消息都能得快速的得到处理(在一个小的集群中,每个节点每秒可以处理数以百万计的消息)。storm部署和运维都十分的便捷,并支持使用任意的语言开发应用。

  storm具有一下特性:

  1.编程模型简单

  Hadoop为开发者提供了map,reduce原语,使并行的批处理程序变的优雅简单,同样storm也提供了一些简单优雅的原语,大大降低了编写并行实时处理系统的复杂性,帮助你快速高效开发应用。

  2.可扩展

  在storm集群中,真正运行的Topology主要有三个实体:工作进程,线程和任务。storm集群中每台机器都可以创建运行多个工作进程,每个工作进程又可以创建多个线程,每个线程可以执行多个任务。任务是进行数据处理的实体。Spout和Bolt被开发出来就是作为一个或则多个任务来执行的。计算任务在多线程,多进程和多服务器之间并行进行,支持灵活的水平扩展。

  3.高可靠性

  4.高容错性

  如果在消息处理的过程中,遇到了一些异常,storm会重新部署这个出现问题的处理单元。storm保证一个处理单元永远运行,除非你显示的结束这个处理单元。当然,如果处理单元存储了中间状态,那么当处理单元被重新启动的时候,需要应用自己处理中间状态的恢复。

  5.支持多种编程语言

  6.支持本地模式

  7.高效

  8.运维部署简单

  9图形化监控