Why do you not submit via StormSubmitter instead of NimbusClient??
> StormSubmitter.submitTopology("topologyName", conf, builder.createTopology());For this, you also need to set system property "storm.jar" which must point to the *client local* path to the topology jar file. -Matthias On 02/18/2016 10:22 PM, Kazansky, Michael wrote: > Yeah but it is not going to work for me. We already have direct topology > submission by calling python script from Java app. > > This requires to know location of the script on the nimbus machine. We > are trying to avoid that. > > > > Thanks, > > Michael Kazansky > > > > *From:*Rahul R [mailto:[email protected]] > *Sent:* Thursday, February 18, 2016 4:17 PM > *To:* [email protected] > *Subject:* Re: submit topology using NimbusClient > > > > I had a similar use case. I just created a form to upload the jar as a > file upload and execute it on nimbus hosts. > > ./R > > > > On Thu, Feb 18, 2016 at 11:16 AM, Kazansky, Michael > <[email protected] <mailto:[email protected]>> > wrote: > > Hi Storm gurus, > > I am working on the project which should allow users to submit their > topology jars to Storm. We successfully using command line but now I > need to write application which allows user to submit jar through let > say browser. > > Here is what I am trying to do > > > > Config conf = new Config(); > > TopologyBuilder topoBuilder = new TopologyBuilder(); > > conf.put(Config.NIMBUS_HOST, topologyModel.getHost()); > > conf.setDebug(true); > > Map stormConf = Utils.readStormConfig(); > > stormConf.put(Config.NIMBUS_HOST, topologyModel.getHost()); > > > > // topology submit > > NimbusClient nimbus = new NimbusClient(stormConf, > topologyModel.getHost(), null != topologyModel.getNimbusPort() ? > topologyModel.getNimbusPort() : 6627); > > String uploadedJarLocation = > StormSubmitter.submitJar(stormConf, topologyModel.getArtifactUrl()); > > System.setProperty("storm.jar", uploadedJarLocation.concat(" > ").concat(topologyModel.getMainClass())); > > String jsonConf = JSONValue.toJSONString(stormConf); > > //StormTopology topology = buildToplogy(topologyModel); > > //SubmitOptions options = new SubmitOptions(); > > //client.jartransformer.class > > > nimbus.getClient().submitTopology(topologyModel.getTopologyName(), > uploadedJarLocation, jsonConf, topoBuilder.createTopology()); > > success = true; > > > > > > I looked at the storm python script and saw that main class name is > concatenated to JVM_OPTS > > That’s why I added this line > > > > System.setProperty("storm.jar", uploadedJarLocation.concat(" > ").concat(topologyModel.getMainClass())); > > > > But when I execute the code in test I only see empty topology without > spouts and bolts in Storm UI with only one worker and one executor. > Main class in the jar has the code to submit spouts and bolts with > parallelism 3 so most definitely main class wasn’t picked up. > > Is there any way to implement this command python > ${storm_home}/bin/storm jar ${dsl_apps_dir}/dist/${jarname} $mainclass > in Java besides calling it (which is already done) directly? > > > > > > Thanks, > > Michael Kazansky > > > > This communication is for informational purposes only. It is not > intended as an offer or solicitation for the purchase or sale of any > financial instrument or as an official confirmation of any transaction. > All market prices, data and other information are not warranted as to > completeness or accuracy and are subject to change without notice. Any > comments or statements made herein do not necessarily reflect those of > JPMorgan Chase & Co., its subsidiaries and affiliates (collectively, > "JPMC"). This transmission may contain information that is proprietary, > privileged, confidential and/or exempt from disclosure under applicable > law. If you are not the intended recipient, you are hereby notified that > any disclosure, copying, distribution, or use of the information > contained herein (including any reliance thereon) is STRICTLY > PROHIBITED. If you received this transmission in error, please > immediately contact the sender and destroy the material in its entirety, > whether in electronic or hard copy format. Although this transmission > and any attachments are believed to be free of any virus or other defect > that might affect any computer system into which it is received and > opened, it is the responsibility of the recipient to ensure that it is > virus free and no responsibility is accepted by JPMC for any loss or > damage arising in any way from its use. Please note that any electronic > communication that is conducted within or through JPMC's systems is > subject to interception, monitoring, review, retention and external > production in accordance with JPMC's policy and local laws, rules and > regulations; may be stored or otherwise processed in countries other > than the country in which you are located; and will be treated in > accordance with JPMC policies and applicable laws and regulations. > Please refer to http://www.jpmorgan.com/pages/disclosures for > disclosures relating to European legal entities. > > > > This communication is for informational purposes only. It is not > intended as an offer or solicitation for the purchase or sale of any > financial instrument or as an official confirmation of any transaction. > All market prices, data and other information are not warranted as to > completeness or accuracy and are subject to change without notice. Any > comments or statements made herein do not necessarily reflect those of > JPMorgan Chase & Co., its subsidiaries and affiliates (collectively, > "JPMC"). This transmission may contain information that is proprietary, > privileged, confidential and/or exempt from disclosure under applicable > law. If you are not the intended recipient, you are hereby notified that > any disclosure, copying, distribution, or use of the information > contained herein (including any reliance thereon) is STRICTLY > PROHIBITED. If you received this transmission in error, please > immediately contact the sender and destroy the material in its entirety, > whether in electronic or hard copy format. Although this transmission > and any attachments are believed to be free of any virus or other defect > that might affect any computer system into which it is received and > opened, it is the responsibility of the recipient to ensure that it is > virus free and no responsibility is accepted by JPMC for any loss or > damage arising in any way from its use. Please note that any electronic > communication that is conducted within or through JPMC's systems is > subject to interception, monitoring, review, retention and external > production in accordance with JPMC's policy and local laws, rules and > regulations; may be stored or otherwise processed in countries other > than the country in which you are located; and will be treated in > accordance with JPMC policies and applicable laws and regulations. > Please refer to http://www.jpmorgan.com/pages/disclosures for > disclosures relating to European legal entities. >
signature.asc
Description: OpenPGP digital signature
