2015-12-26 60 views
1

我運行一些Java代碼,該宏將會上傳:風暴起動拓撲-0.9.6.jar從實施例 ,控制檯顯示:異常:submitTopology失敗:失序響應

535 [ main] INFO backtype.storm.StormSubmitter - 上傳拓撲jar C:\ apachestorm096 \ examples \ storm-starter \ storm-starter-topologies-0.9.6.jar指定位置:¨/ usr/local/storm/data/nimbus /inbox/stormjar-8b5acdaf-e6ce-4b01-9ea9-9bd92e30f417.jar

1066 [主要] INFO backtype.storm.StormSubmitter - 成功上傳拓撲罐分配位置:¨的/ usr /本地/風暴/數據/雨雲/收件箱/ stormjar- 8b5acdaf-e6ce-4b01-9ea9-9bd92e30f417.jar

但我也得到一個錯誤:螺紋

異常 「主要」 org.apache.thrift7.TApplicationException:submitTopology失敗:出序列響應

在暴風雨的UI顯示提交拓撲... 但什麼也沒發生,不流,不噴,沒有門閂......沒有工人... Eclipse的本地和STO運行rm + zookeeper在虛擬機上。

這是代碼:

TopologyBuilder builder = new TopologyBuilder(); 
    Config conf = new Config(); 
    conf.put(Config.NIMBUS_HOST, "100.0.0.26"); 
    conf.put(Config.STORM_ZOOKEEPER_PORT, "2181"); 

    conf.setNumWorkers(20); 
    conf.setMaxSpoutPending(5000); 

    StormSubmitter submitter = new StormSubmitter(); 
    conf.setDebug(true); 
    Map storm_conf = Utils.readStormConfig(); 
    storm_conf.put("nimbus.host", "100.0.0.26"); 
    Client client = NimbusClient.getConfiguredClient(storm_conf).getClient(); 
    try { 
     NimbusClient nimbus = new NimbusClient(storm_conf, "100.0.0.26", 6627); 


    //submitter.submitTopology("blub", conf, builder.createTopology()); 

    String inputJar = "C:\\apachestorm096\\examples\\storm-starter\\storm-starter-topologies-0.9.6.jar"; 
    // upload topology jar to Cluster using StormSubmitter 
String uploadedJarLocation = StormSubmitter.submitJar(storm_conf,inputJar); 

System.out.println("Try ... "); 
try { 

     String jsonConf = JSONValue.toJSONString(storm_conf); 
     System.out.println("Config : " + jsonConf); 

     nimbus.getClient().send_getNimbusConf(); 
     Thread.sleep(5000); 
     System.out.println("Out of sleep ... "); 
     nimbus.getClient().submitTopology("word-count", uploadedJarLocation, jsonConf, builder.createTopology()); 


    } catch (AlreadyAliveException e) { // (AlreadyAliveException ae) { 
     e.printStackTrace(); 
    } 
+0

你爲什麼不直接使用'StormSubmitter.submitTopology(...)'?這會自動上傳jar中的一行。所以你不需要'NimbusClient'並獲得更短的代碼。也許這可以解決問題。 –

回答

0

因爲太少的配置參數設置錯誤被拋出。 我忘了設定的NIMBUS_THRIFT_PORT,我也改變了配置的定義方式...

TopologyBuilder builder = new TopologyBuilder(); 
    Map conf = new HashMap(); 
    //Map conf = Utils.readStormConfig(); 
    conf.put(Config.NIMBUS_HOST, "100.0.0.26"); 
    conf.put(Config.NIMBUS_THRIFT_PORT , 6627); 
    conf.put(Config.STORM_ZOOKEEPER_PORT, 2181); 
    conf.put(Config.TOPOLOGY_WORKERS , 4); 

    conf.put("storm.thrift.transport", "backtype.storm.security.auth.SimpleTransportPlugin");