I’ve been working with Storm using the Clojure DSL and calling an executable
using multilang. When I try to use the shell-bolt-spec as described in the
Clojure DSL page like this:
(shell-bolt-spec {"1" :shuffle "2" ["id"]}
"my_exec"
""
["outfield1" "outfield2"]
:p 25)
I get the following error:
Caused by: java.io.IOException: Cannot run program “my_exec" (in directory
"/var/folders/g1/fgx15lms4118j11pnqgq68jw0000gn/T/000d66ac-fb0a-4d54-a264-2ced651a19d1/supervisor/stormdist/topologytest-5c2e58b5-76ec-4657-9b72-01b318c084a3-1-0/resources"):
error=2, No such file or directory
When I change the storm-starter WordCountTopology.java for SplitSentence (which
calls python) to:
public SplitSentence () {
super(“my_exec");
}
and place my_exec in the multilang/resources directory with the other
storm-starter multilang examples, it works.
I’m trying to determine the best way to shell out to an executable using the
Clojure DSL, and what modifications, if any, I would need to make to provide
this functionality. Is there any way to call shell-bolt-spec to launch a single
shell command executable?
Many thanks,
Frank
________
Frank Moyer | e: [email protected]
<https://twitter.com/fwmoyer>