You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Chris James <ch...@gmail.com> on 2014/03/10 03:47:13 UTC

Error when trying to use multilang in a project built from scratch (not storm-starter)

Hey there.  I'm trying out a storm project built from scratch in Java, but
with a Python bolt.  I have everything running with all Java spouts/bolts
just fine, but when I try to incorporate a python bolt I am running into
issues.

I have my project separated into a /storm/ for topologies, /storm/bolts/
for bolts, /storm/spouts for spouts, and /storm/multilang/ for the
multilang wrappers. Right now the only thing in /storm/multilang/ is
storm.py, copied and pasted from the storm-starter project.  In my bolts
folder, I have a dummy bolt set up that just prints the tuple.  I've
virtually mimicked the storm-starter WordCountTopology example for using a
python bolt, so I think the code is OK and the configuration is the issue.

So my question is simple.  What configuration steps do I have to set up so
that my topology knows where to look to find storm.py when I run
super("python", "dummypythonbolt.py")?  I noticed an error in the stack
trace claiming that it could not run python (python is definitely on my
path and I use it everyday), and that is looking in a resources folder that
does not exist.  Here is the line in question:

Caused by: java.io.IOException: Cannot run program "python" (in directory
"C:\Users\chris\AppData\Local\Temp\67daff0e-7348-46ee-9b62-83f8ee4e431c\supervisor\stormdist\dummy-topology-1-1394418571\resources"):
CreateProcess error=267, The directory name is invalid

A more extensive stack trace is here: http://pastebin.com/6yx97m0M

So once again: what is the configuration step that I am missing to allow my
topology to see storm.py and be able to run multilang spouts/bolts in my
topology?

Thanks!

回复: Error when trying to use multilang in a project built from scratch (not storm-starter)

Posted by Kang Xiao <kx...@gmail.com>.
Hi Chris  

The error message “Caused by: java.io.IOException: Cannot run program "python”” showed that python is not in PATH env so it can not be invoked. You may try to specify the full path of python interpreter.  

--  
Best Regards!

肖康(Kang Xiao,<kxiao.tiger@gmail.com (mailto:kxiao.tiger@gmail.com)>)
Distributed Software Engineer


在 2014年3月10日 星期一,10:47,Chris James 写道:

> Hey there.  I'm trying out a storm project built from scratch in Java, but with a Python bolt.  I have everything running with all Java spouts/bolts just fine, but when I try to incorporate a python bolt I am running into issues.
>  
> I have my project separated into a /storm/ for topologies, /storm/bolts/ for bolts, /storm/spouts for spouts, and /storm/multilang/ for the multilang wrappers. Right now the only thing in /storm/multilang/ is storm.py, copied and pasted from the storm-starter project.  In my bolts folder, I have a dummy bolt set up that just prints the tuple.  I've virtually mimicked the storm-starter WordCountTopology example for using a python bolt, so I think the code is OK and the configuration is the issue.  
>  
> So my question is simple.  What configuration steps do I have to set up so that my topology knows where to look to find storm.py when I run super("python", "dummypythonbolt.py")?  I noticed an error in the stack trace claiming that it could not run python (python is definitely on my path and I use it everyday), and that is looking in a resources folder that does not exist.  Here is the line in question:  
>  
> Caused by: java.io.IOException: Cannot run program "python" (in directory "C:\Users\chris\AppData\Local\Temp\67daff0e-7348-46ee-9b62-83f8ee4e431c\supervisor\stormdist\dummy-topology-1-1394418571\resources"): CreateProcess error=267, The directory name is invalid
>  
> A more extensive stack trace is here: http://pastebin.com/6yx97m0M
>  
> So once again: what is the configuration step that I am missing to allow my topology to see storm.py and be able to run multilang spouts/bolts in my topology?  
>  
> Thanks!