http://storm.apache.org
Apache Storm是一个免费的开源分布式实时计算系统。Storm可以轻松可靠地处理无限数据流,实现Hadoop对批处理所做的实时处理。Storm非常简单,可以与任何编程语言一起使用,并且使用起 来很有趣!
Storm有许多用例:实时分析,在线机器学习,连续计算,分布式RPC,ETL等。风暴很快:一个基准测试表示每个节点每秒处理超过一百万个元组。它具有可扩展性,容错性,可确保您的数据得到处 理,并且易于设置和操作。
Storm集成了您已经使用的排队和数据库技术。
Storm拓扑消耗数据流并以任意复杂的方式处理这些流,然后在计算的每个阶段之间重新划分流。阅读教程中的更多内容。
离线计算是什么?
批量获取数据、批量的传输数据、批量的存储数据、周期性计算数据、数据可视化
flume批量获取数据、sqoop批量传输、hdfs/hive/hbase批量存储、mr/hive计算数据、BI
实时计算是什么?
数据实时产生、数据实时传输、数据实时计算、实时展示 flume实时获取数据、kafka实时数据存储、Storm/JStorm实时计算、实时展示(dataV/quickBI)
hadoop storm
角色: JobTracker Nimbus
TaskTracker Supervisor
Child Worker
应用名称: Job Topology
编程接口: Mapper/Reducer Spout/Bolt
storm编程模型
tuple:元祖
是消息传输的基本单位
Spout:水龙头
storm的核心抽象,拓扑的流的来源。Spout通常从外部数据源读取数据。转换为拓扑内部的源数据。
主要方法:nextTuple() 发出一个新的元祖到拓扑
ack()
fail()
Bolt:转接头
Bolt是对流的处理节点。Bolt作用:过滤、业务、连接运算。
Topology:拓扑
是一个实时的应用程序
永远运行,除非被杀死。
Spout到Bolt是一个连接流。。。
安装集群
1、准备工作
2、下载安装包
3、上传
4、解压
5、配置
vi storm.yaml
storm.zookeeper.servers:
- "bigdata"
# - "server2"
# 设置主节点的主机名称
nimbus.seeds: ["bigdata"]
storm.local.dir: "/Library/bigdata/apache-storm-1.0.3/tmp"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
6、启动
zkServer.sh start
storm nimbus &
storm supervisor &
storm ui
storm命令行操作
1、查看命令帮助
storm help
2、查看版本
storm version
3、运行storm程序
storm jar [路径/.jar][全类名][拓扑名称]
4、产看当前正在运行拓扑及其状态
storm list
5、终止拓扑程序
storm kill [拓扑名称]
6、激活指定的拓扑程序
storm activate [拓扑名称]
7、禁止拓扑程序
storm deactivate [拓扑名称]