storm技术中的流(Stream) 光环大数据storm培训

编辑:光环大数据 来源: 互联网 时间: 2017-12-21 17:34 阅读:

  光环大数据就业培训机构认为,流(Stream)是Storm的核心抽象,是一个无界的元组序列。源源不断传递的元组就组成了流,在分布式环境中并行地进行创建和处理。

流被定义成一个为流中元组字段进行命名的模式,默认情况下,元组可以包含整型(integer)、长整型(long)、短整型(short)、字节(byte)、字符(string)、双精度数(double)、浮点数(float)、布尔值(boolean)和字节数组(bytearray),还可以自定义序列化器,以便本地元组可以使用自定义类型。

流由元组组成,使用OutputFieldsDeclarer声明流及其模式。Serialization是Storm的动态元组类型的信息,声明自定义序列化。自定义序列化必须实现ISerialization接口,自定义序列化可以注册使用CONFIG.TOPOLOGY_SERIALIZATIONS这个配置。

Storm提供可靠的方式把原语转换成一个新的分布式的流,执行流转换的基本元素是Spout和Bolt。

Spout是流的源头,通常从外部数据源读取元组,并emit到拓扑中。例如,Spout从Kestrel队列中读取元组,并作为一个流提交到拓扑。

Bolt接收任何数量的输入流,执行处理后,可能提交新的流。复杂流的转换,如从tweets流中计算一个热门话题,需要多个步骤,因此需要多个Bolt。Bolt可以执行运行函数、过滤元组、连接流和连接数据库等任何事情。

如图所示,Spout和Bolt的网络被打包成一个“拓扑”,即顶级抽象,之后提交这个拓扑到Storm集群中执行。拓扑是一个图的流转换,节点表示Spout或Bolt,弧边指示哪些Bolt订阅了该流。当一个Spout或Bolt发射一个元组到一个流时,它会发射元组到每一个订阅该流的Bolt。

StormTopology

拓扑节点之间的连接表示元组应该如何传递。例如,如果从SpoutA到BoltB有一个连接,从SpoutA到BoltC有一个连接,从BoltB到BoltC有一个连接,那么每次SpoutA将同时发射元组到BoltB与BoltC,BoltB也会发射元组到BoltC。

一个Storm拓扑中的每个节点均可以并行执行,也可以指定拓扑中跨集群执行的线程数量。

一个拓扑会一直运行,直到你杀死它。Storm会自动重新分配任何失败的任务。此外,即使主机已经关闭,消息已经被删除,Storm也能保证不会有数据丢失。

每个流被声明后都会赋予一个id。因为单个流的Spout和Bolt是如此普遍,OutputFieldsDeclarer有方便的方法来声明一个不指定id的单流。在这种情况下,流被赋予默认的id值。

 

        大数据时代,storm培训,就选光环大数据!


大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服

你可能也喜欢这些

在线客服咨询

领取资料

X
立即免费领取

请准确填写您的信息

点击领取
#第三方统计代码(模版变量) '); })();
'); })();