我正试图创造一个混合 风暴 </跨度> 拓扑,使用基于Java的spout和基于python的bolt。
对于基于python的bolt,我编写了一个Java包装器:
class PythonBolt扩展ShellBolt实现 ){ }
@覆盖 公共地图&lt; String,Object&gt; getComponentConfiguration(){ return null; }}
这就是我的sample.py的样子:
进口 风暴 </跨度>
class SplitSentenceBolt(storm.BasicBolt
仅为未来的人们 - 信息非常精确。我只是错过了我的sample.py所在的同一个文件夹中的storm.py。只需添加以下文件: https://github.com/apache/storm/blob/v1.2.1/storm-multilang/python/src/main/resources/resources/storm.py 进入该文件夹解决了问题! 也可以通过LocalCluster运行此代码。
从IDE运行时,我不确定multilang支持是否适用于LocalCluster。看到 https://stackoverflow.com/a/32085316/8845188 。在该答案之后的对话中似乎有一个解决方法。