java - 如何从 JSP 运行 Hadoop 命令

标签 java linux jsp hadoop

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

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

但是它抛出异常

java.lang.UNIXProcess@5a8a7e Errorjava.io.IOException: Cannot run program "hadoop jar hadoop/Anagram.jar com.hadoop.examples.anagrams.AnagramJob /user/hadoop-user/testdir /user/hadoop-user/outputdir5677" (in directory "/home/hadoop-user/hadoop/bin"): java.io.IOException: error=2, No such file or directory

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

最佳答案

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

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

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

关于java - 如何从 JSP 运行 Hadoop 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376750/

相关文章:

java - String类中的split方法和Apache StringUtils中的split方法有什么区别?

c - 鼠标指针在输入子系统中移动后无法模拟 Click 事件

linux - 为什么我可以在未经用户许可的情况下删除文件?

c++ - Qt + conan = 使用空输出设备,没有可用的

java - 如何在 Spring 从 Controller 中的表单获取输入日期?

java - 将 CRC8 从 C 转换为 Java

java - 如何在 JDK 11 中运行 JDK 8 Java Web 应用程序?

java - JSP获取参数

jsp - 提交HTML表单时如何将数据从JSP传输到servlet

java - 可以在不设置 Activity 的 ContentView 的情况下获取对 View 的引用