SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Storm
一种分布式实时计算系统
Bob B.W. 2014/1/25
 一个开源的分布式实时计算系统,可以简单、可靠
的处理大量的数据流。
 使用场景:实时分析,在线机器学习,持续计算,
分布式RPC,ETL等等
 特点:编程模型简单,可扩展,高可靠性,高容错
性,支持多种编程语言,支持本地模式,高效
 与Hadoop MapReduce比较:
mapreduce是一个批处理系统,任务会结束
storm持续处理没有终点的数据流,永远运行
Storm是什么
 主控节点:Nimbus
 工作节点:Supervisor
物理集群组件
Nimbus
zookeeper
zookeeper
zookeeper
supervisor
supervisor
supervisor
supervisor
supervisor
整体架构
 一个topology代表一个任务
 Topology构成组件:spout发送流,bolt接收处理流
 Stream:在topology中流动的没有边界的tuple序列
任务系统
外部数
据源
spout
spout
bolt
bolt
bolt
result
output
tuple
tuple
任务的分布式
Topology
Worker process
Work node
task
task
task
task
task
task
spout
bolt
bolt
parallelism hint = 2
parallelism hint = 2
number of task = 4
parallelism hint = 6
Number of workers = 2
Worker process
Work node
task
task
task
task
task
task
 Shuffle Grouping
 Fields Grouping
 All Grouping
 Global Grouping
 Non Grouping
 Direct Grouping
 Local or shuffle grouping
Stream 的分发
创建一个Topology
RandomSentence
Spout
SplitSentence
Bolt
WordCount
Bolt
消息的可靠处理
spout
bolt
bolt
emit(tuple1, mId)
emit(tuple1, tuple2)
ack(tuple1)
ack(tuple2)
acker acker: mId->[taskId, ack-val]
ack-val = tuple1-id ^ ((tuple1-id ^ tuple2-id) ^ tuple2-id)
taskId: if ack-val = 0 ack(mId)
else fail(mId)
可靠性级别
 Config.TOPOLOGY_ACKERS设置为0
 不在spout中指定messageID
 不设置anchor
Tuple tree
 任务级失败
• bolt任务失败。此时,acker中所有与此bolt任务关联的消息都会因为超时而失败,对应spout的fail方
法将被调用。
• acker任务失败。在失败之前持有的所有消息都将会因为超时而失败。Spout的fail方法将被调用。
• Spout任务失败。Spout任务对接的外部设备(如MQ)负责消息的完整性。
 任务槽(slot) 故障
• worker失败。每个worker中包含数个bolt(或spout)任务。supervisor负责监控这些任务,当
worker失败后,supervisor会尝试在本机重启它。
• supervisor失败。supervisor是无状态的,因此supervisor的失败不会影响当前正在运行的任务,只要
及时的将它重新启动即可。supervisor不是自举的,需要外部监控来及时重启。
• nimbus失败。nimbus是无状态的,因此nimbus的失败不会影响当前正在运行的任务(nimbus失败时,
无法提交新的任务),只要及时的将它重新启动即可。nimbus不是自举的,需要外部监控来及时重
启。
 集群节点(机器)故障
• storm集群中的节点故障。此时nimbus会将此机器上所有正在运行的任务转移到其他可用的机器上运
行。
• zookeeper集群中的节点故障。zookeeper保证少于半数的机器宕机仍可正常运行,及时修复故障机
器即可。
集群容错
 确保每个tuple只被处理一次
一致性事务

Weitere ähnliche Inhalte

Ähnlich wie Introduction to storm

云计算 系统实例与研究现状
云计算 系统实例与研究现状云计算 系统实例与研究现状
云计算 系统实例与研究现状
Danny AJ Lin
 
Hadoop系统及其关键技术
Hadoop系统及其关键技术Hadoop系统及其关键技术
Hadoop系统及其关键技术
冬 陈
 
Hadoop作业调度研究V0.1
Hadoop作业调度研究V0.1Hadoop作业调度研究V0.1
Hadoop作业调度研究V0.1
YongqiangHe
 
Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改
yp_fangdong
 
Hadoop学习总结
Hadoop学习总结Hadoop学习总结
Hadoop学习总结
ordinary2012
 
Oracle 高可用概述
Oracle 高可用概述Oracle 高可用概述
Oracle 高可用概述
xlight
 
Oracle ha
Oracle haOracle ha
Oracle ha
xlight
 

Ähnlich wie Introduction to storm (20)

云计算 系统实例与研究现状
云计算 系统实例与研究现状云计算 系统实例与研究现状
云计算 系统实例与研究现状
 
Hadoop系统及其关键技术
Hadoop系统及其关键技术Hadoop系统及其关键技术
Hadoop系统及其关键技术
 
Hadoop作业调度研究V0.1
Hadoop作业调度研究V0.1Hadoop作业调度研究V0.1
Hadoop作业调度研究V0.1
 
Hadoop-分布式数据平台
Hadoop-分布式数据平台Hadoop-分布式数据平台
Hadoop-分布式数据平台
 
众行业公司系统架构案例介绍
众行业公司系统架构案例介绍众行业公司系统架构案例介绍
众行业公司系统架构案例介绍
 
Java 与 云计算
Java 与 云计算Java 与 云计算
Java 与 云计算
 
Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改
 
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China MobileCeph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
 
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China MobileCeph Day Beijing - Leverage Ceph for SDS in China Mobile
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
 
分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess
 
Baidu Cloud Foundry
Baidu Cloud FoundryBaidu Cloud Foundry
Baidu Cloud Foundry
 
Hadoop学习总结
Hadoop学习总结Hadoop学习总结
Hadoop学习总结
 
Oracle 高可用概述
Oracle 高可用概述Oracle 高可用概述
Oracle 高可用概述
 
Oracle ha
Oracle haOracle ha
Oracle ha
 
雲端技術的新趨勢
雲端技術的新趨勢雲端技術的新趨勢
雲端技術的新趨勢
 
Tilera和fos的学习
Tilera和fos的学习Tilera和fos的学习
Tilera和fos的学习
 
Hybrid Cloud Based on Ceph Object Storage - ShanChun
Hybrid Cloud Based on Ceph Object Storage - ShanChunHybrid Cloud Based on Ceph Object Storage - ShanChun
Hybrid Cloud Based on Ceph Object Storage - ShanChun
 
Memcached vs redis
Memcached vs redisMemcached vs redis
Memcached vs redis
 
Big Java, Big Data
Big Java, Big DataBig Java, Big Data
Big Java, Big Data
 
Hadoop 與 SQL 的甜蜜連結
Hadoop 與 SQL 的甜蜜連結Hadoop 與 SQL 的甜蜜連結
Hadoop 與 SQL 的甜蜜連結
 

Introduction to storm