Использование Flux.main() для запуска топологии в локальном режиме в Storm 2.2.0
У нас есть несколько топологий Storm, написанных в 1.0.6, и мы тестируем их преобразование в 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);
}
}
Не удалось сделать то же самое в мире 2.2.0, где POM имеет:
<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)