bigdata – Can Storm的HdfsBolt在超时后刷新数据吗?

我们使用Storm来处理流数据并存储到HDFS中.我们已经完成了所有工作,但有一个问题.我知道我们可以指定使用SyncPolicy将数据刷新到HDFS之后的元组数,如下所示:

SyncPolicy syncPolicy = new CountSyncPolicy(Integer.parseInt(args [3]));

我的问题是数据是否也可以在超时后刷新?对于例如我们已将SyncPolicy设置为1000元组以上.如果由于某种原因我们得到995个元组然后数据停止进入一段时间有没有办法风暴可以在指定的超时(5秒)后将995记录刷新到HDFS?

在此先感谢您的帮助!

>谢伊

最佳答案 是的,如果你向HDFS螺栓发送一个tick元组,它将导致bolt尝试同步到HDFS文件系统.所有这些都发生在
HDFS bolt’s execute function.

要在拓扑配置中为拓扑配置tick元组.在Java中,要将其设置为每300秒,代码将如下所示:

Config topologyConfig = new Config();
topologyConfig.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS, 300);

StormSubmitter.submitTopology("mytopology", topologyConfig, builder.createTopology());

您必须根据具体情况调整最后一行.

点赞