【问题标题】:How to use Anaconda python in Apache storm shell bolt如何在 Apache Storm Shell Bolt 中使用 Anaconda python
【发布时间】:2018-07-17 10:50:09
【问题描述】:

我正在尝试使用 shell bolt 运行带有 Python bolt 的 Apache Storm 拓扑。 在我的 Bolt 中,我使用的是安装在 /home/labuser/anaconda3/bin/python 中的 spacy 库。 但是,当我运行拓扑风暴时显示错误消息模块未找到 spacy。 调试后我发现storm正在使用位于/usr/bin/python 的python 2.7。

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

根据上述问题的答案,我尝试使用 super("home/labuser/anaconda3/bin/python", "splitsentence.py"); 创建 shell bolt构造函数,但风暴继续在 /usr/bin/python 目录中获取 2.7。

我需要知道如何告诉 Storm 将 home/labuser/anaconda3/bin/python 目录中的 python3 用于我的 shell bolt。

【问题讨论】:

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


    【解决方案1】:

    事实证明,在 shell bolt 的构造函数 中指定使用哪个 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多