今天在使用Storm提交drpc拓扑的时候遇到错误如下:
382 [main] WARN backtype.storm.StormSubmitter - Topology submission exception: Field drpc.servers must be an Iterable of java.lang.String
InvalidTopologyException(msg:Field drpc.servers must be an Iterable of java.lang.String)
at backtype.storm.generated.Nimbus$submitTopology_result.read(Nimbus.java:2466)
at org.apache.thrift7.TServiceClient.receiveBase(TServiceClient.java:78)
at backtype.storm.generated.Nimbus$Client.recv_submitTopology(Nimbus.java:162)
at backtype.storm.generated.Nimbus$Client.submitTopology(Nimbus.java:146)
at backtype.storm.StormSubmitter.submitTopology(StormSubmitter.java:127)
at backtype.storm.StormSubmitter.submitTopology(StormSubmitter.java:70)
at drpc.test.DRPCTEST.doMain(DRPCTEST.java:33)
at drpc.test.DRPCTEST.main(DRPCTEST.java:17)
后来发下,原来
Config config = new Config();
config.put("drpc.servers", “bigdata”);
这样写是不行的,改成:
List<String> drpcs = new ArrayList<>();
drpcs.add("bigdata");
Config config = new Config();
config.put("drpc.servers", drpcs);
这样就ok了。