【问题标题】:Run java file (Storm helloWorld example) in linux command line including libraries在包含库的 linux 命令行中运行 java 文件(Storm helloWorld 示例)
【发布时间】:2015-04-26 08:40:15
【问题描述】:

我正在尝试在我的机器上以本地模式运行 apachestorm。

我成功地安装并运行了storm,如下所示:

1- 安装 Apachee ZooKeeper

2- 安装 Storm

3- 配置 Storm (config.yaml)

4- 启动 Storm Master 和 Worker 节点(Nimbus 和 Supervisor)

5- 启动 Storm UI

现在我的问题是运行一个 helloWorld 示例

我已经使用下面链接中的教程

http://wpcertification.blogspot.com/2014/02/helloworld-apache-storm-word-counter.html

它有 4 个 java 文件

1- 主要:HelloStorm.java

2- LineReaderSpout

3- WordSpitterBolt

4- WordCounterBolt

现在,当我尝试在命令行(基于 linux 的系统)中运行主文件时,出现以下错误:

error: package com.spnotes.storm.bolts does not exist
at import com.spnotes.storm.bolts.WordCounterBolt;

我的猜测是我没有正确指定类路径以包含风暴的位置,我这样做如下

javac -classpath ~/Public/apache-storm-0.9.4/lib/ HelloStorm.java 

但是我仍然在处理同样的问题。 有什么建议吗?

【问题讨论】:

    标签: java linux command-line javac apache-storm


    【解决方案1】:

    Packages 对应目录所以如果你有

    import com.spnotes.storm.bolts.WordCounterBolt
    

    在代码中,编译时需要有一个com/spnotes/storm/bolts/WordCounterBolt.java文件。

    在运行时,java 将需要一个 com/spnotes/storm/bolts/WordCounterBolt.class 文件。

    【讨论】:

    • 但是如果我有罐子怎么办。如何将它们包含在类路径中..因为我尝试以相同的方式包含罐子,但我遇到了同样的问题
    猜你喜欢
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 2020-07-06
    • 1970-01-01
    相关资源
    最近更新 更多