2013-03-13 44 views
1

运行Hadoop的命令来运行一个Hadoop程序所使用的命令是如何从JSP

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

从PWD。

我需要从托管在APACHE TOMCAT 7.0中的JSP页面运行此命令。 在JSP中运行linux命令。

out.println(Runtime.getRuntime().exec("mkdir /tmp/testdirectory")); 

它的工作正常。但我需要运行这个hadoop命令。

在参考this question,我已经做了这样的

<% 
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); 
} 
%> 

但它抛出异常

[email protected] Errorjava.io.IOException:不能运行 程序“hadoop jar hadoop/Anagram.jar” “/ home/hadoop-user/hadoop/bin“):java.io. IOException异常:错误= 2,没有这样的 文件或目录

当我使用这样 我怎样才能解决我的问题。我需要运行这个命令。但是这个问题与路径有关。 :( 任何帮助,将不胜感激!!

+0

你找到任何答案。如果是,请分享,我也找相似的东西。下面是问题链接:http://stackoverflow.com/questions/36885780/running-hadoop-jar-command-from-java-using-runtime-exec/36887299#36887299 – amod 2016-04-27 16:55:46

回答

1

尝试:“” ./hadoop jar hadoop/Anagram.jar ...

路径中使用可能不含有,或者当前目录

这将使搜索的bin目录你在。

+0

[email protected] 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,没有这样的文件或目录..... :( – BinaryMee 2013-03-13 04:03:49

0

的ProcessBuilder采用逗号分隔参数,而不是整个命令像帖子。搜索的ProcessBuilder实例