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 コマンドを実行する必要があります。
この質問を参照して、私はこのようにしました
<%
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: エラー=2、そのようなファイルまたはディレクトリはありません
このように使用すると、どうすれば問題を解決できますか。このコマンドを実行する必要があります。しかし、この問題はパスに関連しています。:(どんな助けでも大歓迎です!!