如何在风暴爬虫中使用 python 螺栓?
how to use python bolt in storm crawler?
我有一些用 python 编写的图像分类器。网上有很多例子,描述了在使用 from stdin/stdout 的 storm bolt 中使用 python 的方法。我想将我的 python 图像分类器与风暴爬虫拓扑集成。可不可以?
谢谢
绝对有可能,几年前这样做是为了将带有 Tensorflow 的图像分类器集成到 StormCrawler 拓扑中。不记得细节,代码留给了我为其编写的客户,但它基于 the multilang protocol,不幸的是不记得细节。
是的,你可以。如果您使用的是 Flux,这是如何在拓扑中使用 python 螺栓的示例定义:
- id: "pythonbolt"
className: "org.apache.storm.flux.wrappers.bolts.FluxShellBolt"
constructorArgs:
- ["python", "/absolute/path/to/your/python_file.py"]
# declare your outputs here:
- ["output0", "output1", "output2"]
parallelism: 1
注意: 确保向 python 螺栓发送简单的数据类型(如字符串、整数等)。不是 java 数据类型,否则会抛出错误!
首先下载storm.py表格
这是一个示例 python 螺栓:
import storm
class SampleBolt(storm.BasicBolt):
# Initialize this instance
def initialize(self, conf, context):
self._conf = conf
self._context = context
def process(self, tup):
# Some processes here, and then emit your outputs.
storm.emit([output0, output1, output2])
# Start the bolt when it's invoked
SampleBolt().run()
我有一些用 python 编写的图像分类器。网上有很多例子,描述了在使用 from stdin/stdout 的 storm bolt 中使用 python 的方法。我想将我的 python 图像分类器与风暴爬虫拓扑集成。可不可以?
谢谢
绝对有可能,几年前这样做是为了将带有 Tensorflow 的图像分类器集成到 StormCrawler 拓扑中。不记得细节,代码留给了我为其编写的客户,但它基于 the multilang protocol,不幸的是不记得细节。
是的,你可以。如果您使用的是 Flux,这是如何在拓扑中使用 python 螺栓的示例定义:
- id: "pythonbolt"
className: "org.apache.storm.flux.wrappers.bolts.FluxShellBolt"
constructorArgs:
- ["python", "/absolute/path/to/your/python_file.py"]
# declare your outputs here:
- ["output0", "output1", "output2"]
parallelism: 1
注意: 确保向 python 螺栓发送简单的数据类型(如字符串、整数等)。不是 java 数据类型,否则会抛出错误! 首先下载storm.py表格
这是一个示例 python 螺栓:
import storm
class SampleBolt(storm.BasicBolt):
# Initialize this instance
def initialize(self, conf, context):
self._conf = conf
self._context = context
def process(self, tup):
# Some processes here, and then emit your outputs.
storm.emit([output0, output1, output2])
# Start the bolt when it's invoked
SampleBolt().run()