Storm简介及计算模型

Storm概述

Storm是一个开源的分布式实时流式计算系统
特点:
-分布式:水平扩展,自动容错
-实时:低延迟(毫秒级)
-流式:数据不间断流入、流出
-DAG:Spout Bolt组成DAG计算模型
-易用:像写单机程序一样简单,支持各种语言
-Apache顶级开源项目
业务场景:
实时统计、实时预警
实时ETL:日志过滤、标注化等
持续计算-如新闻自动发现分析

Storm计算模型

topology:一直运行的Job
DAG:spout/bolt/tuple/stream/grouping
Storm简介及计算模型_第1张图片
Storm简介及计算模型_第2张图片
tuple
storm处理数据的基本单元
schema定义字段名字、顺序
stream
tuple的管道(类似unix管道)
一个stream中的tuple有固定的schema
每个spout、bolt都有一个默认的stream:default
spout、bolt可以有多个流
spout
产生tuple的源头
一般从外部数据源(如kafka)“拉”取数据,生成tuple
一般使用已有的spout足够
bolt
处理tuple的核心
输入tuple,输入tuple
业务逻辑就在这里
grouping
路由策略:一个tuple发往下游某个bolt n个并发中的那个
shuffleGrouping:随机选择
fieldsGrouping:按字段hash
directGrouping:指定taskid
allGrouping:全部

wordcount示例分析
Storm简介及计算模型_第3张图片

典型的topology设计模式
count:fieldGrouping
count with data skew;partialKeyGrouping + fieldsGrouping
这里写图片描述
topn:fieldGrouping + globalGrouping
这里写图片描述
参考最后的参考资料
join:multi fieldsGroup
caching:fieldsGrouping

参考资料

storm官网Tutorial
http://storm.apache.org/documentation/Tutorial.html
http://storm.apache.org/documentation/Rationale.html
http://www.cnblogs.com/panfeng412/archive/2012/06/16/storm-common-patterns-of-streaming-top-n.html(topN的例子)
http://shiyanjun.cn/archives/977.html(Storm流式计算编程实践)
Storm实战常见问题及解决方案
http://blog.csdn.net/xiaolang85/article/details/38492277

你可能感兴趣的:(storm)