【问题标题】:How to run Hadoop command from JSP如何从 JSP 运行 Hadoop 命令
【发布时间】:2013-05-08 21:15:36
【问题描述】:

要运行一个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 命令。

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

但它正在抛出异常

java.lang.UNIXProcess@5a8a7e 错误java.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, No such 文件或目录

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

【问题讨论】:

标签: java linux jsp hadoop


【解决方案1】:

试试:./hadoop jar hadoop/Anagram.jar ...

使用的 PATH 可能不包含“.”或当前目录。

这将使它搜索您所在的 bin 目录。

【讨论】:

  • java.lang.UNIXProcess@5b891 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, No such file or directory..... :(
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多