当前位置: 首页 > 知识库问答 >
问题:

如何使用apache storm元组

麻宾白
2023-03-14

共有1个答案

百里诚
2023-03-14

创建将所有字段作为值的元组的另一种方法是创建一个bean并将其传递到元组中。

给定以下类:

public class DataBean implements Serializable {
    private static final long serialVersionUID = 1L;

    // add more properties as necessary
    int id;
    String word;

    public DataBean(int id, String word) {
        setId(id);
        setWord(word);
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getWord() {
        return word;
    }
    public void setWord(String word) {
        this.word = word;
    }
}

在一个bolt中创建并发出数据库:

collector.emit(new Values(bean));
@Override
public void execute(Tuple tuple, BasicOutputCollector collector) {
    try {
        DataBean bean = (DataBean)tuple.getValue(0);
        // do your bolt processing with the bean
    } catch (Exception e) {
        LOG.error("WordCountBolt error", e);
        collector.reportError(e);
    }       
}
Config stormConfig = new Config();
stormConfig.registerSerialization(DataBean.class);
// more stuff
StormSubmitter.submitTopology("MyTopologyName", stormConfig, builder.createTopology());
collector.emit(new Values(word, bean));
 类似资料:
  • 我一直在寻找如何将apache storm用作CEP的方法,但似乎有两个概念(流处理和复杂事件处理),在CEP中,您可以编写类似sql的查询,并在数据流上执行它们,如ESPER,但我在apache storm中找不到类似的东西,这是否意味着apache storm是一个数据流处理器而不是CEP?

  • 我有一个用两个螺栓处理文档的拓扑结构。我需要能够在文档被完全处理/通过整个拓扑结构后修改存储在喷口中的数据结构。在进一步了解ApacheStorm之前,我相信在spout中实现的“ack”方法只在拓扑的末尾被调用。我现在明白了,在每一个插销中都需要调用“ack”,我感到困惑。 本质上,如果我把自定义代码放在spout中的ack方法中:什么时候执行?每当'ack'方法被调用在一个螺栓或当整个元组树已

  • 问题内容: 是否可以从加载中删除元素而不创建新元素?例如这样的事情: 问题答案: 通过告诉父节点删除子节点来删除该节点: 请参阅文档 和 文档 。

  • 是否可以从加载的中删除元素而不创建新元素?例如,类似这样的事情:

  • 我有一个.docx文档,顶部有一些表格。它们包含需要替换的文本占位符,这很好。但是,这些表中的一个需要重复,并用不同的值填充。我能够深度复制表并将其添加到文档的末尾,但我不知道如何将其插入适当的位置。我尝试在模板表的索引处添加副本,但在LibreOffice中会出现“未知的图形格式”错误,即使删除了原件: 我不知道如何最好地处理这件事。

  • 如何定义条件数组元素?我想做这样的事情: 这按预期工作,并导致,但如果我将设置为