Tomcat を使用した動的 Web プロジェクトがあります (hadoop がインストールされています)。ユーザーが Web サイトを介して Hadoop アプリケーションの引数を定義できるようにしたいと考えています。サーバー上で、提供されたクエリ引数を使用して、hadoop を介して jar を実行します。基本的に、サーバーで次のコマンドを実行します。
hadoop jar query.jar query
Hadoop のため、動的 Web プロジェクトで query.jar のメソッドを直接使用することはできません。したがって、サーバーがcmdで上記のコマンドを実行するようにしたいだけです。サーバーの WEB-INF/lib フォルダーに query.jar を配置しました。サーブレットで次のコードを試しました。
String query = request.getParameter("query");
String execute = "hadoop jar WEB-INF/lib/query.jar " + query;
Process process = Runtime.getRuntime().exec(execute);
try {
process.waitFor();
} catch (InterruptedException ex) {
System.out.print("Error running jar");
}
System.out.print("Execution Successful");
そして、常に「Execution Successful」を取得しますが、サーバー上で Hadoop ジョブが実行されることはありません。実行文字列で指定した query.jar へのパスは正しいですか? 他に間違いはありますか?