storm学习
学习途径
1、官方文档
http://storm.apache.org/index.html
2、GitHub,有案例
https://github.com/apache/storm
3、一个官方文档简体中文版的翻译
http://python-storm-tutorial.readthedocs.io/zh_CN/latest/
多尝试、多思考、遇到问题看日志
1、什么是storm
Apache Storm is a free and open source distributed realtime computation system.
免费、开源、分布式、实时计算系统
Storm makes it easy to reliably process unbounded streams of data
unbounded:无界,源源不断
bounded:Hadoop/spark SQL 离线 (input–>output)
doing for realtime processing what Hadoop did for batch processing
storm:实时流处理
Hadoop:离线批处理
2、storm能做什么?
Storm has many use cases:
realtime analytics:实时分析
online machine learning:在线机器学习
continuous computation:持续计算
distributed RPC,
ETL:
and more.
3、storm的特点
fast: over a million tuples processed per second per node 。一秒1亿
scalable(可添加机器)
fault-tolerant 容错
guarantees your data will be processed 保证每条数据被处理
easy to set up and operate.
storm能实现高频数据和大规模数据的实时处理
4、storm发展历史
storm产生于twitter
需求:大户数的实时处理
实时系统要考虑:
1)健壮性
2)拓展性/分布式
3)数据不丢失不重复
4)高性能低延时
5、storm和Hadoop的区别
处理过程
Hadoop—–> map reduce
storm —–> spout bolt
storm进程不杀死不结束
Hadoop进程完成就结束
处理速度: storm 快
6、发展趋势
看:
社区的发展、活跃度
企业的需求
大数据的相关大会,如storm的数量上升
互联网公司使用度
storm 核心概念
storm 核心概念
1. Topologies 把顺序串起来的东西/ 调度中心
2. Streams 流,数据流,水流
3. Spouts 产生数据、水流的东西(水龙头)
4. Bolts 处理数据/水流的东西 水壶/水桶
5. Tuple 数据/水
6. Stream groupings
7. Reliability
8. Tasks
9. Workers
Storm核心概念总结
Topology:计算拓扑, 由spout和bolt组成的
Stream:消息流,抽象概念,没有边界的tup le构成
Tuple:消息/数据传递的基本 单元
Spout:消息流的源头,Topology的消息生产者
Bolt:消息处理单元,可以做过滤、聚合、查询/写数据库的操作