如何从jsp运行hadoop命令

mklgxw1f  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(379)

要运行hadoop程序,使用的命令是

hadoop/bin/hadoop jar hadoop/Anagram.jar com.hadoop.examples.anagrams.AnagramJob /user/hadoop-user/testdir /user/hadoop-user/outputdir

来自pwd。
我需要从apachetomcat7.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,没有这样的文件或目录
当我这样使用时,我怎样才能解决我的问题。我需要执行这个命令。但这个问题与路径有关任何帮助都将不胜感激!!

6gpjuf90

6gpjuf901#

尝试: ./hadoop jar hadoop/Anagram.jar ... 使用的路径可能不包含“.”或当前目录。
这将使它搜索你所在的bin目录。

nqwrtyyt

nqwrtyyt2#

processbuilder采用逗号分隔的参数,而不是像post那样的整个命令。搜索processbuilder示例

相关问题