如何在Apache Storm Shell Bolt中使用Anaconda python

时间:2018-07-17 10:50:10

标签: python apache-storm apache-storm-topology

我正在尝试使用Shell Bolt和Python Bolt运行Apache Storm拓扑。 在我的螺栓中,我使用的是spacy库,该库已经安装在/ home / labuser / anaconda3 / bin / python中。 但是,当我运行拓扑风暴时,显示错误消息模块找不到空余。 调试后,我发现Storm使用的是位于/ usr / bin / python中的python 2.7。

我的问题是对以下问题的扩展, In storm, how to specify specific version of python

按照上述问题的答案,我尝试使用super(“ home / labuser / anaconda3 / bin / python”,“ splitsentence.py”)创建外壳螺栓;构造函数,但Storm继续在/ usr / bin / python目录中获得2.7。

我需要知道如何告诉Storm在我的shell螺栓中使用home / labuser / anaconda3 / bin / python目录中的python3。

1 个答案:

答案 0 :(得分:0)

事实证明,在实现的shell螺栓的构造器中指定要使用的python版本是答案。我最初尝试了此版本,但由于其他一些构建问题,它失败了。全新的版本,现在可以使用了。

public static class SplitSentence extends ShellBolt implements IRichBolt {

    public SplitSentence() {
      super("home/labuser/anaconda3/bin/python", "splitsentence.py");
    }

    @Override
    public void declareOutputFields(OutputFieldsDeclarer declarer) {
      declarer.declare(new Fields("word"));
    }

    @Override
    public Map<String, Object> getComponentConfiguration() {
      return null;
    }
  }

全部感谢这个答案 In storm, how to specify specific version of python

如果还有其他问题,请务必阅读 http://storm.apache.org/releases/2.0.0-SNAPSHOT/Multilang-protocol.html