要运行 hadoop 程序,使用的命令是
hadoop/bin/hadoop jar hadoop/Anagram.jar com.hadoop.examples.anagrams.AnagramJob /user/hadoop-user/testdir /user/hadoop-user/outputdir
来自残疾人。
我需要从 APACHE TOMCAT 7.0 中托管的 JSP 页面运行此命令。在 JSP 中运行 linux 命令。
out.println(Runtime.getRuntime().exec("mkdir /tmp/testdirectory"));
它工作正常。但我需要运行这个 hadoop 命令。
关于这个问题,我已经这样做了
<%
try{
out.println(Runtime.getRuntime().exec("start-all.sh"));
ProcessBuilder pb = new ProcessBuilder("hadoop jar hadoop/Anagram.jar com.hadoop.examples.anagrams.AnagramJob /user/hadoop-user/testdir /user/hadoop-user/outputdir5677");
pb.directory(new File("/home/hadoop-user/hadoop/bin/"));
Process p = pb.start();
}
catch(Exception e)
{ out.println("Error"+e);
}
%>
但它抛出异常
java.lang.UNIXProcess@5a8a7e Errorjava.io.IOException:无法运行程序“hadoop jar hadoop/Anagram.jar com.hadoop.examples.anagrams.AnagramJob /user/hadoop-user/testdir /user/hadoop-user/outputdir5677” (在目录“/home/hadoop-user/hadoop/bin”中):java.io.IOException:error=2,没有这样的文件或目录
当我这样使用时,我该如何解决我的问题。我需要运行这个命令。但这个问题与路径有关。:( 任何帮助,将不胜感激!!