storm技术中的螺栓(Bolt) 光环大数据storm培训

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

  光环大数据就业培训机构认为,在拓扑中的所有处理都在Bolt中完成,Bolt是流的处理节点,从一个拓扑接收数据然后执行进行处理的组件。Bolt可以完成过滤、业务处理、连接运算、连接与访问数据库等任何操作。Bolt是一个被动的角色,其接口中有一个execute()方法,在接收到消息后会调用此方法,用户可以在其中执行自己希望的操作。

Bolt可以完成简单的流的转换,而完成复杂的流的转换通常需要多个步骤,因此需要多个Bolt。例如,将tweet数据流转换为热门图片流至少需要两个步骤:首先一个Bolt为每个图像的转发做一个滚动的计数,然后一个或多个Bolt流找出排名前X的图片。

Bolt可以发出超过一个的流。为此,使用OutputFieldsDeclarer类的declareStream()方法声明多个流,并使用OutputCollector类的emit()方法指定发射的流。

当声明一个Bolt的输入流时,总是订阅另一个组件的特定流。如果想订阅另一个组件的所有的流,必须订阅每一个过程。InputDeclarer()方法有语法以订阅声明默认流id的流:declarer.shuffleGrouping("1")是指订阅组件1的默认流,相当于declarer.shuffleGrouping("1",DEFAULT_STREAM_ID)。

Bolt的主要方法是execute()方法,该方法将一个新的元组作为输入。Bolt使用OutputCollector对象发射新的元组。Bolt必须为它们处理的每个元组调用OutputCollector类的ack()方法,以便Storm知道什么时候元组会完成(并最终确定它是安全应答原始的Spout的元组)。对于处理一个输入元组的常见情况是发射0个或者更多基于该元组的元组,然后应答输入元组(Storm提供了一个自动应答的IBasicBolt接口)。

我们完全可以在Bolt中启动新的线程进行异步处理。OutputCollector类是线程安全的,可以在任何时间被调用。

IRichBolt是Bolt的通用接口。IBasicBolt是定义Bolt进行过滤或简单功能的一个很方便的接口。使用OutputCollector类的实例可以让Bolt发送元组到其输出流。

 

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


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

你可能也喜欢这些

在线客服咨询

领取资料

X
立即免费领取

请准确填写您的信息

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