Storm

原创
2017/02/20 21:18
阅读数 27

特点

  • 分布式实时计算系统( distributed realtime computation system)

  • 可靠地处理源源不断(无界限)的数据流进行实时计算

  • 很容易使用,可以与任何开发语言一起使用

  • 可以与队列系统及任何数据库集成

  • 有很多使用案例:实时分析,在线机器学习,持续计算,分布式RPC,ETL。

  • 很快速,一个阶段一秒钟可以处理100万tuples的处理

  • 可扩展

  • 容错

  • 承诺数据一定会被处理

  • Storm拓扑(集群)消费数据流并将数据按照多种方式处理,将数据流分片到需要的各个计算阶段

  • Storm的 Spout 抽象使得storm 可以集成任何新的队列系统,storm当前集成的队列有:JMS,kafka,AMQP,RabbitMQ

  • 连接数据库很容易,给storm一个可读写的数据库连接即可,storm会处理并行化,分区,必要的容错。

Intermediate

概念

Topologies

  • storm实时应用的逻辑被包装在一个topology里面
  • 一个topology是一个,由流(streamgrouping)连接的spouts和 bolts组成的图
  • 一个topology相当于一个hadoop 的mapreduce,不同的是,mapreduce会停止儿topology不会(自动)停止

Spouts

  • 是topology的源
  • 一般情况下spouts从其他源读取数据并发送给topology
  • spouts分为可靠和不可靠两种,可靠的spouts可以在storm处理tuple失败的时候进行相应,不可靠的spoutts在发出tuple之后就忘记了此tuple。
  • spouts可以发出一个或者多个stream
  • nextTuple 是一个spouts 最主要的方法
  • fail 和 ack是另外两个重要的方法

Bolts

  • topology 所有的处理动作都在bolts中完成
  • bolts 可以做所有的处理动作,包括过滤、聚合、加入、与数据库交互等等
  • bolts可以做简单的流(stream)转换
  • 做复杂的流(stream)转换通常需要更多的步骤,因此需要更多的bolts

集成:

Apache Kafka Integration、 Apache HBase Integration、 Apache HDFS Integration、 Apache Hive Integration、 Apache Solr Integration、 Apache Cassandra Integration、 JDBC Integration、 JMS Integration、 Redis Integration、 Event Hubs Intergration、 Elasticsearch Integration、 MQTT Integration、 Mongodb Integration、 Kestrel Integration、

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部