我有一个 tomcat 服务器,有几个 servlet,一个 mapreduce 作业(使用 hadoop 编写),还安装了 pig,都与 hadoop 位于同一个集群中。
现在我需要我的 servlet 能够执行 mapreduce 程序(或 pig 脚本),并显示 mapreduce 程序返回的结果。有没有办法让 servlet 执行 mapreduce 作业并取回结果?
++ 我认为只需调用 exec 或 ProcessBuilder 就可以使我的 servlet 执行 mapreduce 作业(或 pig 脚本)。如果我错了,请在这里纠正我。
++ 但是,mapreduce 作业(或 pig 脚本)在 HDFS 中产生结果,这就是我不确定如何取回结果并将它们反馈给 servlet 的地方。一种对我来说似乎很业余且效率低下的解决方案是再次使用 ProcessBuilder(或 exec)将结果从 HDFS 复制到本地,并从那里读取结果。
非常感谢您分享的任何建议。