本帖最后由 长沙-小知姐姐 于 2019-1-3 09:25 编辑
storm概述
Storm是一个分布式计算框架,是一个免费开源的分布式实时计算系统。Storm能轻松可靠地处理无界的数据流,就像Hadoop对数据进行批处理,根据源源不断的数据,实时分析得到不同的结果。
storm应用场景
(1)京东-实时分析系统:实时分析用户的属性,并反馈给搜索引擎(2)携程-网站性能监控:实时分析系统监控携程网的网站性能(3)淘宝双十一:实时统计销售总额
storm组件介绍
Tuple
元组(Tuple),是消息传递的基本单元,是一个命名的值列表,元组中的字段可以是任何类型的对象。
Stream
流是Storm的核心抽象,是一个无界的元组系列。源源不断传递的元组就组成了流,在分布式环境中并行地进行创建和处理。
Spout
Spout是拓扑的流的来源,是一个拓扑中产生源数据流的组件。
Bolt
在拓扑中所有处理都在Bolt中完成,Bolt是流的处理节点,从一个拓扑接收数据,然后执行进行处理的组件
Topology
拓扑(Topology)是Storm中运行的一个实时应用程序,因为各个组件间的消息流动而形成逻辑上的拓扑结构
入门案例介绍
需求
实时统计发射到Storm框架中单词的总数
分析
设计一个topology,来实现对文档里面的单词出现的频率进行统计。
整个topology分为三个部分:
(1)RandomSentenceSpout:数据源,在已知的英文句子中,随机发送一条句子出去。
(2)SplitSentenceBolt:负责将单行文本记录(句子)切分成单词
(3)WordCountBolt:负责对单词的频率进行累加
代码实操
总结
运行main方法,即可实现发射到storm框架的单词的个数,这是学习storm入门的一个基本案例,通过代码了解storm的基本开发流程,了解创建每个组件的作用,在storm的实际使用中,可以去做网站PV 的统计等操作。
|