【问题标题】:Submitting a topology to Storm向 Storm 提交拓扑
【发布时间】:2013-09-19 06:54:17
【问题描述】:

我已经在我的机器上配置了 Storm。 Zookeeper、Nimbus 和 Supervisor 运行正常。 现在我想向这场风暴提交一个拓扑。 我正在尝试使用风暴罐。 但我无法提交。 任何人都可以举一个例子。 这将非常有帮助。 在此先感谢:)

【问题讨论】:

    标签: apache-storm


    【解决方案1】:

    答案在official documentation,已经够清楚了。运行storm jar path/to/allmycode.jar org.me.MyTopology arg1 arg2 arg3(如果有的话,用你的项目名称和参数替换)。确保您使用的是 StormSubmitter 对象而不是 LocalCluster。

    【讨论】:

    • 我克隆了storm-starter,然后按照那里写的那样,当我执行$ lein deps $ lein compile $ java -cp $(lein classpath)storm.starter.ExclamationTopology时一切正常
    • 然后正如文档中所写,我认为我应该运行 java jar 来提交 Storm-starter 的解释拓扑,为此我从 starter 中的这些拓扑的类创建了一个 .jar 文件。然后我执行了 #bin /storm jar/home/mahi/stormstarter/target/classes/storm/starter/try1.jarstorm.starter.ExclamationTopology mytopology
    • 但它给出错误错误:无法找到或加载主类storm.starter.ExclamationTopology我在正确的路径上......请帮助:(
    • @MahiSingh 这就是问题所在。你问了一个简单的问题,我给出了简单的答案。如果您面临特定问题,您应该首先在您的问题中清楚地描述它。我们无法预测和弄清楚您如何以及为什么会面临这些问题。不管怎样,现在看看你的 cmets,看起来你给 storm.starter.ExclamationTopology 的类名不是你设置的,或者你的代码可能没有正确编译。再次,详细解释,你会得到帮助。
    【解决方案2】:

    很遗憾,网上几乎所有的例子都显示了counter example这个词,并没有简单地提及所需的步骤:

    您需要做的就是:
    1. 导航到您的 Storm bin 文件夹:
    cd /Users/nav/programming/apache-storm-1.0.1/bin
    2.启动nimbus
    ./storm nimbus
    3. 启动主管
    ./storm supervisor
    4.启动ui程序
    ./storm ui
    5. 确保使用 storm jar excluded 构建您的 jar 文件。
    6. 确保您的 /Users/nav/programming/apache-storm-1.0.1/conf/storm.yaml file is valid(这应该是第 2 步)。
    7. 确保在您的代码中,您使用StormSubmitter.submitTopology提交拓扑
    8.再次导航到storm bin文件夹
    cd /Users/nav/programming/apache-storm-1.0.1/bin
    9.提交你的jar文件到storm ./storm jar /Users/nav/myworkspace/StormTrial/build/libs/StormTrial.jar com.abc.stormtrial.StormTrial
    上面的命令基本上就是这样的:
    stormExecutable jarOption pathToYourJarFile theClassContainingYourMainFile

    如果您想将命令行参数传递给程序,请在末尾添加:
    stormExecutable jarOption pathToYourJarFile theClassContainingYourMainFile commandlineArguments

    这里,com.abc.stormtrial 是完整的包名,.StormTrial 是包含 main 函数的类的名称。

    现在打开您的浏览器并输入http://127.0.0.1:8080,您将看到您的拓扑通过 Storm 的 UI 运行。

    【讨论】:

    • 当我执行第 9 步时,它会在新窗口中运行 .py 脚本并退出而没有任何错误/信息。知道为什么吗?
    • 检查storm UI,你应该会看到拓扑在那里运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 2018-04-22
    • 2019-06-25
    • 2019-05-24
    • 1970-01-01
    相关资源
    最近更新 更多