Storm 2.2.0 使用 Flux.main() 在本地模式下运行拓扑

问题描述

我们有一些用 1.0.6 编写的 Storm 拓扑,并且正在测试将它们转换为 2.2.0。

在 1.0.6 中,我们有如下类,用于在 IDE 中运行/调试:

import org.apache.storm.flux.Flux;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class StormTopology {

    public static void main(String[] args) throws Exception {

        // Get the original args
        List<String> argList = new ArrayList<String>(Arrays.asList(args));
        String file = StormTopology.class.getClassLoader().getResource("topology.yaml").getFile();
        argList.add("--local");
        argList.add(file);

        file = StormTopology.class.getClassLoader().getResource("dev.properties").getFile();
        argList.add("--filter");
        argList.add(file);
        // Just added a longer value of sleep so that topology does not get killed forcefully while debugging etc.
        argList.add("--sleep");
        argList.add("36000000");

        String[] fluxArgs = argList.toArray(new String[argList.size()]);

        /*
         * Same as calling storm jar StormTopology.jar org.apache.storm.flux.Flux --local topology.yaml --filter dev.properties
         */
        Flux.main(fluxArgs);
    }
}

在 POM 有的 2.2.0 世界中做同样的事情没有运气:

        <dependency>
            <groupId>org.apache.storm</groupId>
            <artifactId>storm-client</artifactId>
            <version>2.2.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.storm</groupId>
            <artifactId>storm-server</artifactId>
            <version>2.2.0</version>
            <scope>test</scope>
        </dependency>

尝试了一些方法(将“--local”更改为“local”等),但最近的尝试出现以下错误。是否仍然可以使用 Flux.main() 来复制 1.0.6 中发生的事情(如果是这样,希望得到语法帮助)还是我们需要以编程方式切换到另一种方式?

Exception in thread "main" java.lang.ClassNotFoundException: /C:/ETL/StormTopology/target/classes/topology.yaml
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.apache.storm.LocalCluster.lambda$main$1(LocalCluster.java:396)
    at org.apache.storm.LocalCluster.withLocalModeOverride(LocalCluster.java:348)
    at org.apache.storm.LocalCluster.main(LocalCluster.java:393)
    at StormTopology.main(StormTopology.java:35)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...