【发布时间】:2016-02-16 22:59:57
【问题描述】:
有一个javascript module/library for Apache Storm,但我不记得看到任何使用它的示例。查看库,我不确定如何实现一个发出东西的示例 BasicBolt。我们有一个自定义的 Storm 拓扑构建器和管理器,所以我正在集成和运行一个 node.js 螺栓。我能够使用storm-node模块运行一个(https://www.npmjs.com/package/storm-node => https://github.com/STRML/storm-node,https://github.com/Lazyshot/storm-node)。但如果可能的话,我更喜欢使用准系统主 Apache Storm 库。我得到了如下。我能够记录一条消息以进行风暴,但无法将数据发送到拓扑中的下一个螺栓以供使用。我在想我没有正确调用 emit() 函数。使用storm-node,发出我想要的东西要容易得多。任何想法我做错了什么或错过了什么?
var ExampleBolt = require("./storm.js").BasicBolt;
ExampleBolt.prototype.process = function(tuple, done) {
this.log("loggedamessage");
var data = JSON.stringify(tuple.values);
//originally tried something like this...
//this.emit([data]);
this.emit({'tuple':data,'anchorTupleId':tuple.values},function taskIdHandler(taskId){ return; });
done();
};
var bolt = new ExampleBolt();
bolt.run();
不幸的是,我使用的storm基础设施没有报告任何关于节点螺栓的有用的运行时错误,以便我找出问题。
【问题讨论】:
-
我不熟悉javascript的东西,但在Java中
BasicBolt提供了一个用于发出数据的收集器对象:storm.apache.org/javadoc/apidocs/backtype/storm/topology/… -
这里是example,注意你使用的storm版本
标签: javascript node.js apache-storm