我试图在hadoop(hdinsight实现)上从java代码运行exe。我没有exe文件的来源,所以我必须像它一样运行它。输入的exe必须是文件,所以我不能使用流。我试图使用shellcommandexecutor,但失败了。
String[] command = new String[] { "C:/pepnovo3/PepNovo",
"-file", "smallinputfile.mgf", "-model", "CID_IT_TRYP" };
ShellCommandExecutor shell = new ShellCommandExecutor(command);
shell.execute();
这给了我一个例外:
java.io.IOException: Cannot run program "C:/pepnovo3/PepNovo": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
我也尝试使用processbuilder,但也失败了(同样的原因)。我也曾试图从hdfs上实现这一点,但也失败了。我知道,hadoop并不是做这件事的完美平台,但那是我的任务。有可能做到吗?
1条答案
按热度按时间wh6knrhe1#
有三种可能:
是所有节点上的可执行文件吗?
作业的工作目录中是否引用了文件(smallinputfile.mgf)(例如,使用-files参数放置)?
作业的hadoop用户是否拥有文件夹和文件的安全权限来执行它?
如果有用的话就告诉我!