10 应用例子

发布 2021-04-26 15:50:28 阅读 3396

应用例子。

本文帮助读者快速实现一个jstorm 例子。

example 源码。

map conf = new hashmp();

/topology所有自定义的配置均放入这个map

topologybuilder builder = new topologybuilder();

/创建topology的生成器。

int spoutparal = get(""1);

/获取spout的并发设置。

spoutdeclarer spout =

new sequencespout(),spoutparal);

/创建spout, 其中new sequencespout() 为真正spout对象, 为spout的名字,注意名字中不要含有空格。

int boltparal = get(""1);

/获取bolt的并发设置。

boltdeclarer totalbolt = new totalcount(),boltparal).shufflegrouping(

/创建bolt, 为bolt名字,totalcount 为bolt对象,boltparal为bolt并发数,/shufflegrouping(

/表示接收的数据,并且以shuffle方式,/即每个spout随机轮询发送tuple到下一级bolt中。

int ackerparal = get(""1);

ackerparal);

/设置表示acker的并发数。

int workernum = get(""10);

workernum);

/表示整个topology将使用几个worker

"distributed");

/设置topolog模式为分布式,这样topology就可以放到jstorm集群上运行。

conf,/提交topology

irichspout 为最简单的spout接口。

irichspout

@override

public void close()

@override

public void activate()

@override

public void deactivate()

@override

public void nexttuple()

@override

public void ack(object msgid)

@override

public void fail(object msgid)

@override

public void declareoutputfields(outputfieldsdeclarer declarer)

@override

public map getcomponentconfiguration()

其中注意:spout对象必须是继承serializable, 因此要求spout内所有数据结构必须是可序列化的。

spout可以有构造函数,但构造函数只执行一次,是在提交任务时,创建spout对象,因此在task分配到具体worker之前的初始化工作可以在此处完成,一旦完成,初始化的内容将携带到每一个task内(因为提交任务时将spout序列化到文件中去,在worker起来时再将spout从文件中反序列化出来)。

open是当task起来后执行的初始化动作。

close是当task被shutdown后执行的动作。

activate 是当task被激活时,触发的动作。

deactivate 是task被deactive时,触发的动作。

nexttuple 是spout实现核心, nextuple完成自己的逻辑,即每一次取消息后,用collector 将消息emit出去。

ack, 当spout收到一条ack消息时,触发的动作,详情可以参考 ack机制

fail, 当spout收到一条fail消息时,触发的动作,详情可以参考 ack机制

declareoutputfields, 定义spout发送数据,每个字段的含义。

getcomponentconfiguration 获取本spout的component 配置。

irichbolt

@override

public void execute(tuple input)

@override

public void cleanup()

@override

public void declareoutputfields(outputfieldsdeclarer declarer)

@override

public map getcomponentconfiguration()

其中注意:bolt对象必须是继承serializable, 因此要求spout内所有数据结构必须是可序列化的。

bolt可以有构造函数,但构造函数只执行一次,是在提交任务时,创建bolt对象,因此在task分配到具体worker之前的初始化工作可以在此处完成,一旦完成,初始化的内容将携带到每一个task内(因为提交任务时将bolt序列化到文件中去,在worker起来时再将bolt从文件中反序列化出来)。

prepare是当task起来后执行的初始化动作。

cleanup是当task被shutdown后执行的动作。

execute是bolt实现核心, 完成自己的逻辑,即接受每一次取消息后,处理完,有可能用collector 将产生的新消息emit出去。 *在executor中,当程序处理一条消息时,需要执行 详情可以参考 ack机制 **在executor中,当程序无法处理一条消息时或出错时,需要执行 ,详情可以参考 ack机制

declareoutputfields, 定义bolt发送数据,每个字段的含义。

getcomponentconfiguration 获取本bolt的component 配置。

在m**en中配置。

jstorm-core

provided

打包时,需要将所有依赖打入到一个包中。

m**en-shade-plugin

packageshade

10 高级应用

1 在下面的空白位置插入数学公式 本部分提示 插入 对象 对象类型 microsoft 公式 3.0 1 在下面的 中计算出每位同学的总分 2 按照总分对 的行进行排序 本部分提示 公式 和 排序 1 设置正文中一级标题 二级标题的大纲级别 本部分提示 选中一级标题 二级标题,格式 段落 大纲级别 ...

写景作文例子

石头口门水库的月落。柔波万顷的湖畔静得可以听见呼吸的声音。月夜与水波便随着这一呼一吸而涌动着各自的柔情。远山黛色,在夜的背景下稀疏地静默着,也将人的目光延伸拉扯到很远很远。而那不甚明亮的月,在此刻,竟风情万种得让人怦然心动。犹如一块埋藏于地下千年之久的琥珀,灵性已蕴含于天地之间。内敛得如此从容淡定,...

写景作文例子

作文的具体要求。注 本篇作文是本册书最重要的一篇,我在讲课时用了好几节课详细地讲了写景文章地结构,观察顺序和写作方法。孩子书上都有批注。希望家长认真看习作要求,避免不合格返工。作文要求 1 要求写生活中的一处景物。景物范围不要过大,可以是一片小树林,或一条小河,一个街心花园,一棵大槐树,一个小公园,...