在hadoop上用java代码运行exe文件

hm2xizp9  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(383)

我试图在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并不是做这件事的完美平台,但那是我的任务。有可能做到吗?

wh6knrhe

wh6knrhe1#

有三种可能:
是所有节点上的可执行文件吗?
作业的工作目录中是否引用了文件(smallinputfile.mgf)(例如,使用-files参数放置)?
作业的hadoop用户是否拥有文件夹和文件的安全权限来执行它?
如果有用的话就告诉我!

相关问题