我有一个带有 tomcat 的动态 Web 项目(安装了 hadoop)。我想允许用户通过网站为我的 hadoop 应用程序定义一个参数。然后,在服务器上,我想通过 hadoop 使用提供的查询参数运行我的 jar。所以基本上我想在我的服务器上运行以下命令:
hadoop jar query.jar query
由于 hadoop,我不能直接在我的动态 Web 项目中简单地使用 query.jar 的方法。所以我只希望服务器在其 cmd 中运行上述命令。我已将 query.jar 放在服务器的 WEB-INF/lib 文件夹中。我在我的 servlet 中尝试了以下代码:
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");
虽然我总是得到“执行成功”,但我的 hadoop 作业从未在服务器上执行。我在执行字符串中提供的 query.jar 的路径是否正确?还有其他错误吗?